机器学习基础篇_2/2

2022-09-13 15:01:02 浏览数 (1)

开发流程

原始数据 –> 数据特征工程(训练数据和测试数据) –> 选择合适的算法进行学习 –> 建立模型 –> 模型评估(测试数据) –> 判断模型是否合格 –> 模型应用(一般以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_:回归系数

0 人点赞