前言
在学习和研究及其学习的时候,面临令人眼花缭乱的算法,机器学习新手往往会不知所措。
但是其实没有这么难,我们主要专注于两类核心的“算法族”,即惩罚线性回归和继承方法,我会通过代码示例来展示所讨论的算法的使用规则。
分类问题
在分类问题上首先需要做的工作是简单的测量;数据的规模、数据类型、确实的数据等。
接着是数据的统计特征、属性的关系、属性与标签之间的关系。
什么鬼,好晕 +_+
没关系,我们举个例子,用声呐发现未爆炸的水雷。
数据集来自UC Irvine数据仓库,来源于实验:测试声呐是否可以用途检测在港口军事行动后遗留下来的未爆炸的水雷。声呐信号又叫做啁(zhōu)啾(jiū )信号(chirped signal),即信号在一个脉冲期间频率会增加或降低。
此数据集的测量值代表声呐接收器在不同地点接收到的返回信号,,其中在大约一半的例子中,返回的声呐信号反映的是演示的形状,而另一半是金属圆筒的形状(水雷)。
“岩石VS.水雷”数据集的物理特征
对新数据集所做的第一件事就是确定数据集的规模。数据集文件是有逗号分割的,一次数据占据文本的一行。文件处理十分简单:读入一行,对数据按照逗号进行分割,将结果列表存入输入列表即可。
以上代码确实数据集的规模(行数、列数),如代码输出所示,此数据集为208行,61列(每行61个字段)。这有什么影响呢?
数据集的规模(行数、列数)至少会在以下几个方面影响你对数据的处理。首先,根据数据的规模可以大致判断训练所需的时间。
详细代码和资料,请入群获取,
首先,根据数据的规模可以大致判断训练所需的时间。对于像“岩石vs水雷”这种小数据集,训练时间会少于1分钟,这有利于在训练时间将不到一分钟,这有利于在训练过程中不断调整和迭代。如果数据集规模增加到1000*1000,惩罚线性回归训练时间将不到一分钟,而集成方法训练时间需要几分钟。以此类推,数据规模越大,训练时间越长,开发进度也会越慢,因此通常需要迭代几次来对算法进行调整和优化。
另外一个重要的观察就是如果数据集的列数远远大于行数,那么采用惩罚线性回归的方法择优很大的可能获得最佳的预测,反之亦然。
根据应做事项清单,下一步要做的就是确定哪些列是数值型的,哪些列是类别型的。
代码依次检查每一列,确定数值型(整型或浮点型)的条目数量、非空字符串的条目数量、内容为空的条目数量。分析的结果是:前60列都是数值型,最后一列都是字符串。这些字符串值是标签。同城类别型变量用字符串表示。
相关资料,请加群获取:586656942