快速入门Python机器学习

2022-05-22 10:25:51 浏览数 (1)

一、基本概念

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,过拟合与欠拟合

过拟合:训练得分很高;测试得分很低。

欠拟合:训练得分和测试得分都很低。

过拟合原因:训练数据不具有普适性;欠拟合原因:训练数据没有训练价值。

我在实际工作中出现过训练得分很低,而测试得分很高,属于不正常现象,可以考虑代码错误或者测试数据过于单一。

0 人点赞