- 特征集X
- 目标集Y
- 一般来说机器学习的数据集都会被划分成三个个子集:训练集,验证集和测试集;
- 我们拿到的数据集通常都是由人工或者半自动化的方式收集来的,每个输入数据都有对应的输出,机器学习要做的是学习这些已经收集好的数据中所包含的信息,并且在新的输入数据出现时成功预测到输出;
- 训练集是用来训练模型的,给模型输入和对应的输出,让模型学习它们之间的关系;
- 验证集是用来估计模型的训练水平。根据验证集的表现来选择最好的模型;
- 测试集是训练好的模型在模拟的“新”输入数据上得到的输出。测试集只能在最后用于测试模型的性能,不能拿来训练。用于评价模型泛化能力的强弱;
- 比较常见的划分数据集的方式是:50%用于训练,25%用于验证,25%用于测试。这个比例也可以根据数据集的大小和数据信噪比来改变;
使用Scikit-learn库拆分数据集
from sklearn.model_selection import train_test_split X_train, X_test, Y_train, X_test = train_test_split(train_data, train_target, test_size=0.4, random_state=0)
其中:
- train_data:所要划分的样本特征集;
- train_target:所要划分的样本结果;
- test_size:
- 小数表示拆分出的测试集所占整体比例;
- 整数表示拆分出测试集的总体数量;
- random_state:随机数种子;
- 表示随机数组的编号,在需要重复实 验时可以通过相同的随机数种子保证得到相同的随机数组;
- 不传该参数时默认值为False,此时相同的切分比例下得到的结果也不同;
- 给定训练集;
- 建立模型(模型假设)
- 损失函数(误差函数)
- 最优模型,即真实值和预测值之间的误差最小;
- 从样本数据集中习得最优模型的算法,即最小化损失函数的算法称为学习算法;
- 一种迭代算法,常用于求解无约束最优化问题;
- 算法过程:
- 任意选取一个参数初值ω_0;
- 不断迭代更新得到新的参数,使损失函数的函数值逐步降低;
- 重复以上迭代过程直至两次迭代的函数值基本没有变化,此时认为损失函数(L)收敛到最小值,迭代结束;
使用Scikit-learn库中的线性回归模型;
- sklearn.linear_model模块中的LinearRegression类
from sklearn.linear_model import linearRegression Lr = LinearRegression() Lr.fit(X_train, Y_train) # 训练模型 XY_test = X_test[:5].copy() XY_test["Y"] = Y_test[:5] XY_test["Y_predict"] = Lr.pridect(X_test[:5])



