• 05 机器学习开发流程


    05 机器学习开发流程

    数据类型

    离散型数据

    • 定义:记录不同类别个体的数目得到的数据,又称计数数据。这些数据全是整数,且不能再细分,也不能进一步提高他们的精度。
    • 如:3.6个人

    连续型数据:

    • 定义:变量可以在某个范围内取任一整数,即变量的取值可以是连续的,如,长度、时间、质量值等,通常含有小数部分。

    注: 离散型式区间内不可分,连续型是区间内可分。

    机器学习算法分类

    监督学习

    • 特征值 + 目标值

    分类 (离散型)

    - K-近邻算法
    - 贝叶斯分类
    - 决策树与随机森林
    - 逻辑回归
    - 神经网络
    

    回归 (连续型)

    - 线性回归
    - 岭回归
    

    标注

    - 隐马尔可夫模型 (不做要求)
    

    无监督学习

    聚类

    - k-means
    

    开发流程

    数据源

    1. 公司的数据
    2. 合作的数据
    3. 购买的数据

    开发方法

    1. 建立模型:根据数据类型划分应用种类
    2. 数据的基本处理:pd (缺失值,合并表...)
    3. 特征工程 (对特征进行处理)
    4. 找到合适的算法进行预测
      • 分类
      • 回归
    5. 模型评估,判定结果 (模型:算法+数据)
      • 换算法
      • 调参数
      • 特征工程数据处理
    6. 上线使用

    数据的划分和介绍

    Sklearn 数据集

    1. 数据集的划分
    • 训练数据:用于训练,构建模型 (75%)
    • 测试数据:在模型检验时使用,用于评估模型是否有效 (25%)
    1. sklearn 数据集划分API
    • sklearn.model_selection.train_test_split
      • x : 数据的特征值
      • y : 数据集的标签值
      • test_size : 测试集的大小
      • random-state : 随机数种子,相同种子的采样结果相同
    1. sklearn 数据集API介绍 (sklearn.datasets)
    • 加载获取流行数据集,小规模数据集,数据包含在datasets里
      datasets.load_*()

    • 获取大规模数据集,需要从网络上下载
      datasets.fetch_*(data_home=None)
      获取数据集的返回类型

    1. 用于分类的大数据集
      sklearn.datasets.fetch_20newsgroups(data_home=None, subset='train')
      subset: 'train', 'test', 'all' - 选择要加载的数据集

    datasets.clear_data_home(data_home=None) 清楚目录下的数据

    from sklearn.datasets import load_iris, fetch_20newsgroups
    from sklearn.model_selection import train_test_split
    
    li = load_iris()
    # print(li.data)   # 特征
    # print(li.target)  # 标签
    # print(li.DESCR)
    # print(li.feature_names)
    # print(li.target_names)
    
    # 注意返回值的顺序
    # 训练集 train :x_train,y_train, 测试集 test: x_test, y_test
    x_train, x_test, y_train, y_test = train_test_split(li.data, li.target, train_size=0.75)
    
    print(x_train)
    print('*' * 50)
    print(x_test)
    print(y_train)
    print(y_test)
    
    news = fetch_20newsgroups(subset='all')
    print(news.data)
    print(news.target)
    

    转换器与估计器

    转换器 (Trransformer)

    1. fit_transform() : 输入数据直接转换
    2. fit(): 输入数据,没有输出,计算平均值,方差等
    3. transfrom(): 进行数据的转换
    >>> from sklearn.preprocessing import StandardScaler
    >>> s = StandardScaler()
    >>> s.fit_transform([[1,2,3],[4,5,6]])
    >>> array([[-1., -1., -1.],
           [ 1.,  1.,  1.]])
    
    >>> sa = StandardScaler()
    >>> sa.fit([[2,3,4],[9,9,9]])
    >>> StandardScaler(copy=True, with_mean=True, with_std=True)
    >>> sa.transform([[1,2,3],[4,5,6]])  # 使用fit()中计算好的平均值,方差来计算
    >>> array([[-1.28571429, -1.33333333, -1.4       ],
           [-0.42857143, -0.33333333, -0.2       ]])
    

    注: 正常使用是,优先使用fit_transform(), 单独使用时,transform() 会使用fit() 中计算好的值来计算输入到transform中的值.

    估计器(Estimator)

    1. 定义:是一类实现了算法的API

    2. 分类估计器:

      • sklearn.neighbors k-近邻算法
      • sklearn.naive_bayes 贝叶斯
      • sklearn.linear_model.LogisticRegression 逻辑回归
      • sklearn.tree 决策树与随机森林
    3. 回归估计器

      • sklearn.linear_model.LinearRegression 线性回归
      • sklearn.linear_model.Ridge 岭回归
    4. Estimator 使用流程

      1. 调用fit(x_train, y_train)
      2. 输入与测试集的数据
        • y_predict = predict(x_test)
        • 预测准确率: score(x_test, y_test)
  • 相关阅读:
    centos中pipelinedb安装及初步使用
    sqlalchemy 的操作
    存储引擎,索引,慢日志,权限管理
    python使用mysql
    mysql数据库查找数据的方法。
    mysql 数据库的基本操作
    epoll 数据库安装以及相关概念
    IO模型,非阻塞IO模型,select实现多路复用
    线程回调,线程中的队列,事件,greenlet模块,gevent模块,自定义补丁, 单线程实现并发,协程
    GIL全局解释器锁,线程池与进程池 同步异步,阻塞与非阻塞,异步回调
  • 原文地址:https://www.cnblogs.com/hp-lake/p/11838342.html
Copyright © 2020-2023  润新知