机器学习分为有监督学习和无监督的学习。
有监督学习:对数据的若干特征与若干标签之间的关联性进行建模的过程,确定模型后就能应用到新的未知数据中。进一步可以分为分类和回归任务。分类对应离散型数据,而回归对应的是连续性数据。SVM、随机森林和神经网络属于有监督的学习。
无监督学习:对不带任何标签的数据特征进行建模。包括聚类和降维,例如k-means算法等。
其中半监督学习介于二者之间,适用于数据标签不完整的情况。
Python机器学习主要调用模块为sklearn,里面有机器学习使用的各种模型算法以及评价指标。
进行数据分析、建模的过程一般为:读取数据—抽取样本,生成测试集和检验集—调用模型—模型预测—采用模型评价指标,评价模型预测结果
影响模型质量的两个因素为模型的复杂度以及训练集的规模。模型的学习曲线是指,训练集规模的训练得分/检验集的得分。
特征:
- 特定复杂度的模型对较小的数据集容易过拟合,此时训练集的得分较高,检验集的得分较低;
- 特定复杂度的模型对较大的数据集容易欠拟合;随着数据的增大,训练集得分会不断降低,检验集评分会不断升高;
- 模型的检验集得分永远不会高于训练集得分,两条曲线不断靠近,却不会交叉。
本次实验选取多项式模型,通过模型的多项式来提高或减少模型的复杂度,观察学习曲线的变化趋势。
(一)构造多项式回归模型,生成测试样本数据。
代码:
#构造多项式模型
from sklearn.preprocessing import PolynomialFeatur