机器学习的一些知识

1、机器学习中经常会面临以下两大问题: 维度灾难和过拟合。 

1..1维度灾难 
     维度灾难( Curse of Dimensionality )是指数据量过大和特征数过多导致的一系列问题。 随着数据的不断积累,在实际应用问题中我们接触到的数据集、数据记录可能有几万、几十 万、 几百万乃至更多,特征数量也可能达到几百甚至几千个。

     我们自然希望获取尽可能多的数据 即希望二维表的行和列都尽可能多,因为更多的数据和更丰富的特征都能使模型学到更 多,从而提升最终的任务性能,但是这些无疑也都会导致更复杂的模型、更长的训练时间和更 高的计算成本。 一些模型在低维度下可以实现很好的性能,但在高维度的情况下可能会变得极为复杂甚至 性能下降。

      例如,对于简单的二分类问题,在一维中只需要用一个点进行分割即可, 在二维中 则需要一条曲线,在三维中甚至需要一个曲面,在更高的维度中则更是难以想象。随着维度的 增加,模型训练所需的等待时间和计算成本都有可能随之呈指数级增加。 低维度下在个人电脑 上足以处理的模型,高维度下也许不得不部署到服务器上进行训练;低维度下训练、模型只需要 十几秒的时间, 高维度下也许需要几小时、几天甚至更久, 这在生产环境和实际应用中几乎是 无法容忍的。 在实验环境中,我们可以为了实现很小的性能提升,使用更复杂的模型、付出更 多的时间和计算成本,但在实际应用中则更看重简单的模型和实时的处理能力,因此需要在性 能和成本之间合理权衡。
1.2过拟合
       过拟合是指在训练、集上训练的模型, 在训练集上能够取得很好的性能,在测试集上的表现 却不尽人意。

      评估一个模型时,主要考虑的是模型的学习能力和泛化能力,前者是指模型是否 能够很好地学习到数据的分布、特征与标签之间的关联等内容,后者是指模型在训练集上训练 后, 能否很好地泛化到测试集等其他数据上。 一般来说,模型越复杂,学习能力越强, 但泛化 能力越弱,越容易过拟合; 模型越简单,泛化能力越强,但学习能力越弱,更容易欠拟合。

     在 性能相似的情况下, 一般更青睐简单的模型。例如,探索体重和身高之间的关系时,简单的线 性模型便足以揭示两者之间的关联并较好地完成回归任务。如果以 X轴为身高、 y轴为体重, 将训练、集中的数据点绘制成散点图, 那么使用一条直线便足以拟合。 相反的,如果使用一条极 度复杂扭曲但涵盖了所有数据点的曲线进行拟合,则很容易导致过拟合并且在测试集上造成更 大的误差。 

     为了防止过拟合, 可以在训练的过程中采用正则项( Regularization )等方法。正则项是仅供非商业用途或交流学习使用 ' . 
指在训练过程中人为引入一些误差,从而避免模型过度拟合训练、数据中特征和标签之间的对应 关系,而把注意力更多地放在学习一些通用而泛化的关联和规律上。

2 学习的流程

   使用机器学习解决应用问题时,一般包含以下几个流程: 预处理、特征工程、特征选择、 特征降维、 模型训练、模型调参、模型评估

1). 预处理
   首先需要进行一些预处理操作,例如通过数据重塑将原始数据整理成需要的格式,以及通 过数据清洗处理缺失值,以提高数据质量。 对于数据中的缺失值,最简单的方法是将包含大量 缺失值的行或列直接丢弃。 也可以进行补全,使用 0、-1 等标识值,或者对应字段的统计 值, 如平均值、 中位数等。 还可以将缺失值转换为新的特征,例如, 统计每条记录的缺失字段 数量并作为新的特征,从而发挥缺失值的潜在作用。
2)特征工程

       特征工程是在原始特征的基础上,融合和生成更多样的新特征,从而为后续训练、模型带来 更多潜在的性能提升空间。 俗话说,特征没做好,参数调到老,我们希望获取更多的数据和特 征, 而优秀的特征工程可以让机器学习迈上一个更高的起点,在整个项目中可能会占据 60% 甚至更多的时间。

     对于数值型特征,可以两两之间进行加、减、乘、除以及其他更复杂的组 合, 从而生成极为丰富的新特征,这些组合可能是完全没有意义的,但也有可能会带来意想不 到的新涵义。 也可以将全部数据记录按某一数值型特征进行排序,得到对应的排序特征,即将 连续的数值取值转换为离散的排序顺序,而排序特征相对于数值特征更稳定、鲁棒性更强。

    对 于类别型特征,可以通过 One-Hot 编码转换为向量, 类似自然语言理解中的词袋模型,从而 可以和数值型特征一起进行后续模型的训练。 

3) 特征选择

     特征工程生成了非常多的新特征,然而并不是每一个特征都是有意义的, 完全无效的特征 甚至会带来不必要的噪音,因此需要经过特征选择,筛选出和标签相关的有用特征,去除和标 签无关的无用特征。

     在这个过程中,如何选择特征、保留多少特征、哇除多少特征,都是需要 反复探索和尝试的问题 。 常用的做法是使用最大信息系数( Maximal Information Coefficient )、 Pearson 相关系数等可以反映特征和标签之间相关性强弱的判别系数进行排 序, 仅保留相关性最强的一些特征。 有些模型如 XGBoost 在训练的过程中也会对特征进行重 要性评估和排序,因此也可以作为特征选择的依据

4.)特征降维
     特征降维虽然也是将原始数据由高维变为低维,即减少特征的数量,但特征选择是从已有 的特征中直接选出有用的部分,而特征降维则是根据已有的特征融合出更少更有用的特征, 因 此是一个多对多的融合过程。常用的降维算法有 PCA (Principal Component Analysis )和 tSNE ( t-distributed Stochastic Neighbor Embe.dding )等,也可以用于将高维特征数据降低 至二维,便于在平面上进行数据分布的降维可视化分析。 

5). 模型训练、模型调参
     就像读书一样,通过以上“由薄到厚’二再“由厚到薄”的过程,我们准备好了信息量最 大、和标签关联最强、对后续训练模型作用最大的特征集合。

     可以使用单模型进行训练,可能 需要尝试各种经典的机器学习模型并比较性能,每种模型都会涉及对应的一些设置参数,不同 的参数组合也会影响到模型最终的表现。 也可以使用多模型进行融合,使用之前介绍的集成学 习分别训练多个模型,然后将它们的输出结果加权融合。这一过程涉及的选择非常之多, 使用 哪种模型?参数如何设置和调整?选择哪些模型进行融合?多模型的结果以何种方式进行融 合?这些问题都会影响到最终的性能,需要经过大量的探索尝试和经验指导。

6) 模型评估

    完成以上工作后需要评估模型在测试集上的输出结果,主要针对有监督学习模型。

    首先 讨论二分类问题,在训练集上训练好模型之后,对测试集中的每条记录进行二分类即分为正 例和反例,并和真实标签进行比较。理想情况自然是将每一条测试记录都划分为正确的类别, 而实际情况中则可能会出现以下 4 类结果。 

  •  真实标签为正并且分类为正,分类正确,称为 True Positive ( TP )
  •  真实标签为正但是分类为负,分类错误,称为 False Negative ( FN )
  • 真实标签为负并且分类为负,分类正确,称为 True Negative (TN )
  •  真实标签为负但是分类为正,分类错误,称为 False Positive ( FP )

    一种简单的评估指标便是统计分类正确的记录数量占总数量的比例,称为正确率 (Accuracy ),对于多分类模型的评估也可以采用类似的思路。在正确率的基础上,还可以通 过准确值(Precision )、召回值(Recall )和 F 值( F-Score )评估分类模型的性能,以上三 个参数也是通过 TP, FN、 TN 和 FP 计算出来的。 

    当样本比例失衡时,使用正确率无法恰当地评估模型的性能。例如,使用分类模型判断是 否患有某种疾病时,由于实际上患病的人数远比健康人数要少,即便模型对于任何记录都判断 为健康,依然能达到非常高的正确率。在这种二分类情况下,使用 ROC 曲线和 AUC 值能够 更加准确地评估模型的性能。

     在二分类的具体实现中,模型一般是给测试数据中的每一条记录进行评分,当评分高于阔值肘, 判断为正例,低于阔值肘,则判断为负例。 AUC 值主要关注 模型对正负例评分的相对高低,处于 0 至 1 之间。 当测试集中全部正例的评分比全部负例的 评分都要高肘, AUC 值等于 1; 当全部正例的评分比全部负例的评分都要低时, AUC 值等于 0;如果将全部记录都判断为正例或负例,即全部记录的评分都相等,贝U AUC 值等于 0.5。 

      对于回归任务,可以计算测试集中,每条记录的回归标签值和真实标签值之差,并进行统 计汇总。 常用的回归模型评估指标包括平均绝对差值( M~an A,b::?olute Error )、均方误学 ( Mean Square Error )、 均方根误差( Root Mean Square Error丁等。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值