一、基本概念
1,有监督学习和无监督学习
有监督学习:预先定义好的一组标签(比如禾本科植物:小麦、玉米、水稻、高粱、高羊茅、剪股颖、早熟禾、燕麦、稗、茅、狗尾巴草),通过机器学习后获得的结果是在预先定义好的标签内(比如:燕麦)。
无监督学习:预先没有定义好的一组标签,机器学习后,通过数据中的类似性归为一类。
2,分类、聚类和回归
分类:分类属于有监督学习。比如对于结论在[小麦,玉米,水稻,高粱,高羊茅,剪股颖,早熟禾,燕麦,稗,茅,狗尾巴草]下,给出下面一些训练数据和测试数据。
属性1 | 属性2 | 属性3 | 属性4 | 属性5 | 属性6 | 属性7 | … | 属性n | 结论 |
---|---|---|---|---|---|---|---|---|---|
值1.1 | 值1.2 | 值1.3 | 值1.4 | 值1.5 | 值1.6 | 值1.7 | … | 值1.n | 小麦 |
值2.1 | 值2.2 | 值2.3 | 值2.4 | 值2.5 | 值2.6 | 值2.7 | … | 值2.n | 玉米 |
值3.1 | 值3.2 | 值3.3 | 值3.4 | 值3.5 | 值3.6 | 值3.7 | … | 值3.n | 小麦 |
值4.1 | 值4.2 | 值4.3 | 值4.4 | 值4.5 | 值4.6 | 值4.7 | … | 值4.n | 水稻 |
… | … | … | … | … | … | … | … | … | |
值m.1 | 值m.2 | 值m.3 | 值m.4 | 值m.5 | 值m.6 | 值m.7 | 值m.n | 水稻 |
现在给定一组数据,判定具有这组数据属性的禾本科植物属于哪个品种,比如。
属性1 | 属性2 | 属性3 | 属性4 | 属性5 | 属性6 | 属性7 | … | 属性n | 结论 |
---|---|---|---|---|---|---|---|---|---|
值x.1 | 值x.2 | 值x.3 | 值x.4 | 值x.5 | 值x.6 | 值x.7 | … | 值x.n | 狗尾巴草 |
最后得出结论为:狗尾巴草(注意最后的结论肯定在[小麦,玉米,水稻,高粱,高羊茅,剪股颖,早熟禾,燕麦,稗,茅,狗尾巴草]之内)。
聚类:分类属于无监督学习,比如同样用上面一组数据,但是我们不给标签,通过训练,得到:
属性1 | 属性2 | 属性3 | 属性4 | 属性5 | 属性6 | 属性7 | … | 属性n | 结论 |
---|---|---|---|---|---|---|---|---|---|
值1.1 | 值1.2 | 值1.3 | 值1.4 | 值1.5 | 值1.6 | 值1.7 | … | 值1.n | 类别1 |
值2.1 | 值2.2 | 值2.3 | 值2.4 | 值2.5 | 值2.6 | 值2.7 | … | 值2.n | 类别2 |
值3.1 | 值3.2 | 值3.3 | 值3.4 | 值3.5 | 值3.6 | 值3.7 | … | 值3.n | 类别1 |
值4.1 | 值4.2 | 值4.3 | 值4.4 | 值4.5 | 值4.6 | 值4.7 | … | 值4.n | 类别3 |
… | … | … | … | … | … | … | … | … | |
值m.1 | 值m.2 | 值m.3 | 值m.4 | 值m.5 | 值m.6 | 值m.7 | 值m.n | 类别5 |
在这里,是不是第1条结论就应该是类别1;第2条结论就应该是类别2,预先是未知的。
现在,仍旧用上面的数据:
属性1 | 属性2 | 属性3 | 属性4 | 属性5 | 属性6 | 属性7 | … | 属性n | 结论 |
---|---|---|---|---|---|---|---|---|---|
值x.1 | 值x.2 | 值x.3 | 值x.4 | 值x.5 | 值x.6 | 值x.7 | … | 值x.n | 类别4 |
回归:可以看见不管分类还是聚类数据是离散的,而回归的数据是连续的,回归主要用于预测(比如股票预测,天气预测)。
日期 | 最高温度 | 最低温度 | 最高湿度 | 最低温度 | 气压 | 结论 |
---|---|---|---|---|---|---|
2022-1-1 | 1 | -4 | 80% | 47% | 1.00 | 晴 |
2022-1-2 | 3 | -3 | 76% | 52% | 1.01 | 阴 |
2022-1-3 | 4 | -1 | 87% | 51% | 0.98 | 阴 |
2022-1-15 | 4 | -2 | 85% | 48% | 0.99 | 阴 |
… | … | … | … | … | … | … |
2022-2-5 | 2 | -3 | 84% | 50% | 1.02 | 小雨 |
今天是2022-2-6,可以通过回归算法预测2022-2-7为晴。
3,训练集和测试集
一组数据用于机器学习,先用一批数据进行学习,然后用另一组数据进行验证,通过验证后的数据的准确与否来调整机器学习模型。用于训练的测试数据为训练集;用于测试的测试数据为测试集。一般而言训练集占所有数据的80%;测试集占所有数据的20%。
4,训练得分和测试得分
训练得分=训练答对的数据个数/所有训练集数据个数*100%。
测试得分=测试答对的数据个数/所有测试集数据个数*100%。
由于无监督学习没有对与错,所以训练集和测试集仅对有监督学习有效。
5,过拟合与欠拟合
过拟合:训练得分很高;测试得分很低。
欠拟合:训练得分和测试得分都很低。
过拟合原因:训练数据不具有普适性;欠拟合原因:训练数据没有训练价值。
我在实际工作中出现过训练得分很低,而测试得分很高,属于不正常现象,可以考虑代码错误或者测试数据过于单一。