前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >机器学习基础篇_2/2

机器学习基础篇_2/2

作者头像
卡伊德
发布2022-09-13 15:01:02
5300
发布2022-09-13 15:01:02
举报
文章被收录于专栏:caidblog

开发流程

原始数据 –> 数据特征工程(训练数据和测试数据) –> 选择合适的算法进行学习 –> 建立模型 –> 模型评估(测试数据) –> 判断模型是否合格 –> 模型应用(一般以API的形式提供)

算法分类

  • 数据类型
    1. 离散型:由记录不同类别个题的数目所得到的数据,又称计数数据,所有这些数据全部都是整数,而且不能再分,也不能进一步提高他们的精确度
    2. 连续性:变量可以在某个范围内取任一数,即变量的取值可以是连续的,如,长度、时间、质量值等,这类整数通常是非整数,含小数部分。
  • 算法分类
    • 监督学习
      • 分类:k-近邻算法、贝叶斯分类、决策树与随机森林、逻辑回归、神经网络
      • 回归:线性回归、岭回归
    • 无监督学习 聚类:k-means
k-近邻算法
  • 定义 如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于摸一个类别,则该样本也属于这个类别。
  • 距离公式
  • 特点 需要做标准化处理。 k的取值越大,容易受k值数量(类别)的波动,k越小,容易受异常点影响。 优点:算法检点,易于理解,易于实现,无需估计参数,无需训练 缺点:懒惰算法,对测试样本分类是的计算量大,内存开销大。必须指定k值,k值选择不当则分类精度不能保证。 场景:数据量较小。
朴素贝叶斯
  • 概率 是指一件事情发生的可能性。
    • 联合概率 包含多个条件,且所有条件同时成立的概率。 P(A,B)
    • 条件概率 事件A在另外一个事件B已经发生条件下的发生概率。P(A|B) P(A1, A2|B) = P(A1|B)P(A2|B)
  • 朴素贝叶斯
    • 公式 其中,w为给定文档的特征值(频数统计,预测文档提供),c为文档类别。 P(C) = 类别文档数 / 总文档数量 P(W|C) 是给定类别下特征的概率,P(F1|C) = Ni/N,Fi是文档中的各个词,Ni为该F1词在C类别所有文档中出现的次数。N为所属类别C下的文档所有此出现的次数和 公式等价于
    • 概率为零的解决方案 拉普拉斯平滑系数 为指定的系数,一般为。为训练文档中统计出的特征词个数。
    • API sklearn.naive_bayes.MultinomialNB(alpha=1.0) alpha为拉普拉斯平滑系数
    • 特征 不需要传参,训练集误差大,结果则差。 场景:文本分类,神经网络
决策树
  • 思想 决策树思想的来源非常朴素,程序设计中的条件分支结构是if-then结构,最早的决策树就是利用这类结构分割数据的一类分类学习方法。
  • 信息度量和和作用
  • 信息熵 H的专业术语是:信息熵,单位为比特 注:信息和消除不确定性是相联系的
  • 划分依据
    • 信息增益:当得知一个特征条件之后,减少的信息熵的大小。也就是在获取到一个特征值之后,信息熵减少的越多,说明该属性越重要,对于结果的不确定性影响越大,决策时排在最前面。 其中g为信息增益,H(D)为初始信息熵大小,H(D|A) 是特征A给定条件下D的信息条件熵。
  • API class sklearn.tree.DecisionTreeClassifier(criterion=’gini’, max_depth=None, random_state=None)
    • 决策树分类器
    • criterion默认是’gini’系数,也可以选择信息增益的熵’entropy’
    • max_depth:数的深度大小
    • random_state:随机数种子

    方法: decision_path:返回决策树的路径

分类模型评估

  • API sklearn.metrics.classification_report(y_true, y_pred, target_names=None)
    • y_true: 真是目标值
    • y_pred:估计器预测目标值
    • target_names:目标类别名称
    • return: 每个类别精确率与召回率

模型选择与调优

交叉验证
  • 目的:让被评估的模型更加准确可信。
  • 思想: 将训练数据分为训练集和验证集。将数据分为n份,其中一份为验证集。然后经过n次(组)的测试,每次都更换不同的验证集,轮流进行,直到每一份都数据都做过验证集为止,即可得到n组模型的结果,再取其平均值作为最终结果。又称为n折交叉验证。
网格搜索

调参数:k-近邻的超参数K

  • 思想 通常情况下,很多参数需要手动指定(如k-近邻算法中的K值),这种叫超参数。但是手动过程繁杂,所以需要对模型预设几种超参数组合。每组超参数都采用交叉验证来进行评估。最后选出最优参数组合建立模型。
  • API sklearn.model_selection.GridSearchCV(estimator, param_grid=None, cv=None)
    • 对估计器的指定参数值进行详尽搜索
    • estimator: 估计器对象
    • param_grid: 估计器参数(dict){‘n_neighbors’:[1,3,5]}
    • cv: 指定几折交叉验证
    • fit:输入训练数据
    • score:准确率
    • 结果分析:
    • best_score_: 在交叉验证中验证的最好结果
    • best_estimator_: 最好的参数模型
    • cv_results: 每次交叉验证后的测试集准确率结果和训练集准确率结果

集成学习方法:随机森林

  1. 随机森林 集成学习方法:集成学习方法通过建立几个模型组合来解决单一预测问题。他的工作原理是生成多个分类器。各自独立地学习和作出预测。这些预测最后结合成单预测,因此由于任何一个但分类的作出预测。 随机森林: 在机器学习中,随机森林是一个包含多个决策树的分类器,并且其输出的类别是由个别输出的类别的众数而定。 如:5个数,其中4个为True,1个为False,则结果为True
  2. 过程 对于N个样本,M个特征 单个数建立:1. 随机在N个样本中选择一个样本,重复N次(样本可能重复) 2.随机在M个特征中选择m个特征 建立10颗决策树,样本,特征大多不一样。且在抽取中是随机有放回的抽样(bootstrap抽样)
  3. API class sklearn.ensemble.RandomForestClassifier(n_estimators=10, criterion='gini', max_depth=None, bootstrap=True, random_state=None)
    • n_estimators:随机森林分类器,integer,optional(default=10) 森林里的树木数量 120,200,300,500,800,1200
    • max_depth:integer或None,可选(默认=无) 树的最大深度,5,8,15,25,30
    • max_features=’auto’,每个决策树的最大特征数量
  4. 优点
  • 在当前所有算法中,准确率最好
  • 能够有效运行在大数据集上
  • 能够处理具有高维持的输入样本,而且不需要降维
  • 能够评估各个特征在分类问题上的重要性

回归算法

线性回归

通过一个或者多个自变量与因变量之间进行建模的回归分析。其中可以为一个或多个自变量之间的线性组合(线性回归的一种)

一元线性回归:涉及到的变量只有一个

多元线性回归:涉及到的变量两个或多个

通用公式:

,其中,为矩阵:,

线性关系模型

一个通过属性的线性组合来进行预测的函数:

w为权重,b为偏置项,可以理解为:w0 x 1

  • 二维:直线关系 y=kx+b
  • 三维:特征,目标值,平面关系
损失函数(误差大小)
  1. 定义:最小二乘法
  2. 方法
  • 正规方程 ,为特征值矩阵,为目标值矩阵
  • 梯度下降 思想:沿着函数下降的方向找,最后就能找到山谷的最低点,然后更新w值。 使用:面对训练数据规模十分庞大的任务
  1. API 特点:线性回归器是最为简单、易用的回归模型。从某种程度上限制了使用,尽管如此,在不知道特征之间关系的前提下,我们仍然使用线性回归器作为大多数系统的首要选择。
  • sklearn.linear_model.LinearRegression() 普通最小二乘线性回归,coef:回归系数 场景:小规模数据,不能解决拟合问题)
  • sklearn.linear_model.SGDRegressor() 通过使用SGD最小化线性模型,coef:回归系数 场景:大规模数据
  1. 回归性能评估 (均方误差MSE)评价机制: 为预测值,为真实值。 API:mean_squred_error(y_true, y_pred) 均方差回归损失
    • y_true:真实值
    • y_pred: 预测值
    • return: 浮点数结果 注:真实值、预测值均为标准化之前的值。
  2. 解决模型复杂(或过拟合)的方法 L2正则化 作用:可以使得W的每个元素都很小,都接近于0 优点:越小的参数说明模型越简单,越简单的模型则越不容易产生过拟合现象
Ridge:岭回归(带有正则化的回归)
  • API sklearn.linear_model.Ridge(alpha=1.0)
    • alpha: 正则化力度
    • coef_:回归系数
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/08/26 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 开发流程
  • 算法分类
    • k-近邻算法
      • 朴素贝叶斯
        • 决策树
          • 分类模型评估
            • 模型选择与调优
              • 交叉验证
              • 网格搜索
            • 集成学习方法:随机森林
              • 线性回归
              • 线性关系模型
              • 损失函数(误差大小)
              • Ridge:岭回归(带有正则化的回归)
          • 回归算法
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档