文章目录
- 一、机器学习一般过程
- 1.数据获取
- 2.特征提取
- 3.数据预处理
- ①去除唯一属性
- ②缺失值处理
- A. 均值插补法
- B. 同类均值插补法
- ③重复值处理
- ④异常值
- ⑤数据定量化
- 4.数据标准化
- ①min-max标准化(归一化)
- ②z-score标准化(规范化)
- 5.数据降维
- ①目的
- ②权衡
- 6.训练模型
- ①样本数据集的选取
- ②机器学习算法
- 7.评估模型的有效性
- ①过拟合与欠拟合
- ②性能度量
- A. 回归任务
- B.分类任务
- C.聚类任务
- 8.使用模型
一、机器学习一般过程
机器学习的基本思想是通过从样本数据中提取所需特征构造一个有效的模型,并使用所建模型来完成具体的任务。
首先要获取所研究问题的数据
其次是对获取到的数据进行适当处理,然后选取合适的算法训练模型
最后对训练好的模型进行评估,以判定其是否满足任务需求,如满足,即可使用模型。
1.数据获取
机器学习的第一步是收集与学习任务相关的数据,这是最基础也是最重要的一步。
虽然现在是大数据时代,但对于一个给定任务,要得到与之相关的数据有时却很困难。业界广泛流传这样一句话:*数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限的方法而已。*因此,数据的获取尤为重要。
在训练最优的机器学习模型时,一定要选择最有代表性的数据集。只有选择最合适的属性作为特征,才能保证机器学习项目能应用于实际。
2.特征提取
特征提取是使用专业的背景知识和技巧最大限度地从原始数据中提取并处理数据,使得特征在机器学习的模型上得到更好的发挥,它直接影响机器学习的效果。
例如,在机器自动分辨筷子和牙签两种物品的实验中
序 号 | 长度/(cm) | 质量/(g) | 材 质 | 类 别 |
---|---|---|---|---|
1 | 25 | 8 | 竹 | 筷子 |
2 | 23 | 7 | 竹 | 筷子 |
3 | 20 | 4 | 木 | 筷子 |
4 | 6 | 0.1 | 竹 | 牙签 |
5 | 5 | 0.08 | 竹 | 牙签 |
6 | 5.8 | 0.09 | 竹 | 牙签 |
… | … | … | … | … |
观察表数据集可发现,根据长度和质量这两个特征即可分辨筷子和牙签,材质这个特征对区分筷子和牙签的作用并不明显,故可在特征属性中提取长度和质量这两个特征,而将材质这个特征删除,这个过程称为特征提取。
3.数据预处理
现实生活中,收集到的数据往往会有数据量纲(数据的度量单位)或数据类型不一致等问题。因此,在获取样本之后,通常需要对数据进行预处理。
数据预处理没有标准流程,通常包含去除唯一属性,处理缺失值、重复值和异常值,以及数据定量化等几个步骤。
序 号 | 姓 名 | 年龄/(岁) | 年收入/(元) | 性 别 | 学 历 | 年消费/(元) |
---|---|---|---|---|---|---|
1 | 张三 | 36 | 50 000 | 男 | 本科 | 30 000 |
2 | 赵琦 | 42 | 45 000 | 女 | 本科 | 40 000 |
3 | 李武 | 23 | 30 000 | 男 | 高中 | |
4 | 王波 | 61 | 70 000 | 男 | 本科 | 20 000 |
5 | 刘玉琦 | 38 | 20 000 | 女 | 大专 | 10 000 |
6 | 赵琦 | 42 | 45 000 | 女 | 本科 | 40 000 |
7 | 赵倩 | −5 | 30 000 | 女 | 本科 | 90 000 |
该数据集是某平台上的“客户信息样本数据集”,要求使用机器学习方法,进行聚类,将客户划分为几种类型,以便为其推销相关的产品。在训练模型之前,我们需要对数据集中的数据进行预处理,才能得到理想的机器学习样本数据集。
①去除唯一属性
唯一属性通常指ID、姓名等属性,每个样本的取值都不一样且唯一,这些属性不能刻画样本自身的分布规律,在做数据预处理时,需将这些属性删除。
序 号 | 年龄/(岁) | 年收入/(元) | 性 别 | 学 历 | 年消费/(元) |
---|---|---|---|---|---|
1 | 36 | 50 000 | 男 | 本科 | 30 000 |
2 | 42 | 45 000 | 女 | 本科 | 40 000 |
3 | 23 | 30 000 | 男 | 高中 | |
4 | 61 | 70 000 | 男 | 本科 | 20 000 |
5 | 38 | 20 000 | 女 | 大专 | 10 000 |
6 | 42 | 45 000 | 女 | 本科 | 40 000 |
7 | −5 | 30 000 | 女 | 本科 | 90 000 |
②缺失值处理
这里的缺失值指的是,单个样本中的数据某些确实,并不是样本缺失
常见的缺失值处理方法有3种
- 直接使用含有缺失值的特征;
- 删除含有缺失值的特征;
- 缺失值补全。其中,缺失值补全是最常用的手段。
A. 均值插补法
是指使用该属性有效值的平均值来插补缺失的值
B. 同类均值插补法
是指首先将样本进行分类或聚类,然后以该类中样本的均值插补缺失值。
③重复值处理
在数据处理中,重复值指的是数据集中出现了两个或多个完全相同的记录或行。这些记录在所有列上的取值都完全相同,没有任何区别。重复值可能是由数据输入错误、数据复制问题或其他原因导致的。
重复值会导致数据的方差变小,数据的分布发生较大变化。因此,若检查到数据集中有重复数据,要将其删除。
④异常值
异常值是指超出或低于正常范围的值,如年龄为负数、身高大于3 m等,它会导致分析结果产生偏差甚至错误。检查到异常值后,可对异常值进行删除或替换处理
序 号 | 年龄/(岁) | 年收入/(元) | 性 别 | 学 历 | 年消费/(元) |
---|---|---|---|---|---|
1 | 36 | 50 000 | 男 | 本科 | 30 000 |
2 | 42 | 45 000 | 女 | 本科 | 40 000 |
3 | 23 | 30 000 | 男 | 高中 | 15 000 |
4 | 61 | 70 000 | 男 | 本科 | 20 000 |
5 | 38 | 20 000 | 女 | 大专 | 10 000 |
⑤数据定量化
计算机只能处理数值型数据。因此,在数据预处理时,如果有非数值型数据,都要先转换成数值型数据。
序 号 | 年龄/(岁) | 年收入/(元) | 性 别 | 学 历 | 年消费/(元) |
---|---|---|---|---|---|
1 | 36 | 50 000 | 1 | 60 | 30 000 |
2 | 42 | 45 000 | 2 | 60 | 40 000 |
3 | 23 | 30 000 | 1 | 20 | 15 000 |
4 | 61 | 70 000 | 1 | 60 | 20 000 |
5 | 38 | 20 000 | 2 | 40 | 10 000 |
在该数据集中性别和学历都是非数值型数据,需将其处理成数值型数据,如学历“高中”可用20代替,“大专”可用40代替,“本科”可用60代替;性别中的“男”可用1代替,“女”可用2代替。
4.数据标准化
数据标准化是指将数据按比例缩放,使之落入一个特定区间,从而消除数据之间数量级的差异。经过标准化处理后,不同的特征可以具有相同的尺度。
①min-max标准化(归一化)
数据集的每个属性(数据表中的列)中都有一个最大值和一个最小值,分别用max和min表示,然后通过一个公式将原始值映射到区间[0,1]上。
序 号 | 年 龄 | 年 收 入 | 性 别 | 学 历 | 年 消 费 |
---|---|---|---|---|---|
1 | 0.34 | 0.6 | 0 | 1 | 0.67 |
2 | 0.5 | 0.5 | 1 | 1 | 1 |
3 | 0 | 0.2 | 0 | 0 | 0.17 |
4 | 1 | 1 | 0 | 1 | 0.33 |
5 | 0.39 | 0 | 1 | 0.5 | 0 |
整个数据集的数据经过min-max标准化处理后的结果如表所示。
这种处理方法的缺点是当有新数据加入时,可能会导致最大值和最小值发生变化,需要重新定义。
②z-score标准化(规范化)
它是基于原始数据的均值和标准差进行数据标准化的一种方法。
z-score标准化方法适用于属性的最大值和最小值未知的情况或有超出取值范围的离群数据的情况。
公式:新值=(原始值-均值)/标准差
序 号 | 年 龄 | 年 收 入 | 性 别 | 学 历 | 年 消 费 |
---|---|---|---|---|---|
1 | −0.33 | 0.41 | −0.82 | 0.75 | 0.65 |
2 | 0.16 | 0.12 | 1.22 | 0.75 | 1.58 |
3 | −1.38 | −0.76 | −0.82 | −1.75 | −0.74 |
4 | 1.71 | 1.56 | −0.82 | 0.75 | −0.28 |
5 | −0.16 | −1.34 | 1.22 | −0.5 | −1.21 |
整个数据集的数据经过z-score标准化处理后的数据如表所示。
注意:
z-score标准化要求样本属性值数据服从正态分布,这就要求样本数量足够多,故此案例不适合使用z-score标准化进行数据处理。
5.数据降维
- “维度”是指样本集中特征属性的个数。
- “降维”是指减少特征矩阵中特征的数量。
①目的
- 为了对数据进行可视化,以便对数据进行观察和探索;
- 简化机器学习模型的训练,使模型的泛化能力更好,避免“维度灾难”。
在实际应用中,数据一般是高维的。
手写数字“1”及其对应二维矩阵
手写的数字图片,如果将其缩放到28x28像素的大小,那么它的维度就是28x28=784维
对应的图像二维矩阵
数据已经被规范化到(0,1)范围内
②权衡
维数太多或太少都不好,设置恰当的维数对机器学习模型非常重要。
例如,对苹果和梨子进行分类时,若只将形状作为特征,则很可能会出现错误分类的情况;若再将大小作为特征,则可减少错误分类的情况;若再将颜色作为特征,则可进一步减少错误分类的情况。
数据降维最常用的方法是主成分分析法。
深度学习就是对样本的特征进行复杂的变换,得到最有效的特征,从而提高机器学习的性能。
6.训练模型
①样本数据集的选取
- 训练集的数据要尽可能充分且分布平衡(即每个类别的样本数量差不多),否则不可能训练出一个完好的模型;
- 验证集或测试集的样本也需要符合一定的平衡分布,否则将无法测试出一个准确的模型;
- 训练模型和测试模型使用的样本不能相同。
②机器学习算法
训练机器学习模型时,要根据具体的学习任务,选择合适的算法。
- 分类任务经常使用的算法有k近邻、朴素贝叶斯、决策树、支持向量机等;
- 回归任务经常使用的算法有线性回归、k近邻、决策树等;
- 聚类任务经常使用的算法有k均值、DBSCAN、GMM等。
7.评估模型的有效性
一个机器学习模型训练出来后,一般需要评估该模型的效果,看其是否能满足实际问题的需要。
评估模型的有效性就是利用测试集对模型进行测试,评估其输出结果。
事实上,我们希望得到一个在新的未知样本上表现很好的模型,即泛化能力好的模型。
①过拟合与欠拟合
如果模型在训练样本上学得“太好”了,很可能把训练样本自身的一些特点当成了所有样本的一般性质,导致泛化能力下降,这种现象在机器学习中称为“过拟合”。
与“过拟合”相对的就是“欠拟合”,指对训练样本的一般性质尚未学好。图1-10给出了关于过拟合与欠拟合的一个类比,便于理解。
②性能度量
A. 回归任务
- 残差:在数理统计中是指所有拟合数据(即模型预测数据)与原始数据(样本实际值)之间的差的和。
- 和方差(SSE):拟合数据和原始数据对应点的误差的平方和。SSE越接近于0,说明模型越好,数据预测也越成功。
- 均方误差(MSE):拟合数据和原始数据对应点误差的平方和的均值,。
- 均方根误差(RMSE):MSE的平方根,也称回归任务的拟合标准差。
- 确定系数(R2):通过数据的变化来表征一个拟合的好坏,R2的正常取值范围为[0.1],越接近1,表明模型越好。
B.分类任务
分类任务中最常用的评估方法有准确率、精确率、召回率和F1值等。下面以一个二分类问题为例,介绍这些评估方法的含义。
真 实 值 | 正 例 | 反 例 |
---|---|---|
预 测 值 | ||
正例 | 真正例( ) | 假反例( ) |
反例 | 假正例( ) | 真反例( ) |
在二分类中,假设样本有正反两个类别,则分类模型预测的结果有两种,正例和反例;真实数据的标签也有两种,正例和反例。那么,预测结果与真实标签的组合就有真正例(true positive)、真反例(true negative)、假正例(false positive)和假反例(false negative)4种情况,分别用 TP、 TN、FP 和 FN表示以上4种情况,
TP表示真实值与预测值都是正样本的数量;
FN表示真实值是正样本,而预测值却是反样本的数量;
FP表示真实值是反样本,而预测值却是正样本的数量;
TN表示真实值与预测值都是反样本的数量。
可见Tp与TN都是预测正确的情况。
- 预测的准确率可定义为:
Accurancy=(TP+TN)/(Tp+FN+FP+TN)
- 而预测的精确率表示预测为正的样本中有多少是真正的正例,故精确率可定义为:
Precision=TP/(TP+FP)
- 召回率表示样本中的正例有多少被预测正确了,故召回率可定义为:
Recall=TP/(TP+FN)
C.聚类任务
方 法 名 | 是否需要真实值监控 | 最 佳 值 |
---|---|---|
ARI(兰德系数)评价法 | 需要 | 1.0 |
AMI(互信息)评价法 | 需要 | 1.0 |
V-measure评分 | 需要 | 1.0 |
FMI评价法 | 需要 | 1.0 |
轮廓系数评价法 | 不需要 | 畸变程度最大 |
calinski_harabasz指数评价法 | 不需要 | 相比较最大 |
在聚类任务中,我们希望同一类的样本尽量类似,不同类的样本尽量不同。即簇内对象的相似度越大,不同簇之间的对象差别越大,聚类效果越好。聚类任务常用的评估指标如表所示。
8.使用模型
如果模型的性能能达到实际需求,就可以使用该模型预测新样本了。
例如,假设区分筷子和牙签的模型训练出来并且能达到实际需求,那么,就可以将一个新样本的数据(长度为14 cm,质量为6 g)输入到该模型中,使用模型预测出输入的数据是筷子还是牙签.