数据挖掘与机器学习
实验:机器学习框架
一、实验名称
实验:机器学习框架
二、实验目的
1.了解机器学习算法理论基础
2.平台实现算法
3.编程实现机器学习
三、实验原理
机器学习(Machine Learning, ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。
四、实验步骤
1.引包,进行第一步数据的加载,查看其数据的格式和结构;并进行训练集与测试集的划分。
2.进行第二步选择模型,选择线性回归LinearRegression。
3.进行第三步模型的训练,给模型训练集的数据,对数据进行训练、拟合。
4.进行第四步模型的预测,传测试集的数据进行预测。
5.进行第五步模型的评测,使用MSE(均方误差)指标对模型进行评测。
6.使用交叉验证来查看模型训练的效果。
7.进行第六步模型的保存。
五、完整代码
# 引包
from sklearn.datasets import load_boston
from sklearn import datasets
# 加载数据
# 读入数据
boston = load_boston()
# 数据为字典类型
# data:数据属性,target:数据标签
boston
# data:数据属性,target:数据标签
X = boston.data
y = boston.target
# data 数据属性 X
X
# target 数据标签 y
y
# 训练集、测试集的划分
from sklearn.model_selection import train_test_split
# 一共506条
# test_size:测试集大小,如果是float,代表比例;如果是int,代表具体多少条
# random_state:随机种子,随机数种子控制每次划分训练集和测试集的模式,其取值不变时划分得到的结果一模一样,其值改变时,划分得到的结果不同。若不设置此参数,则函数会自动选择一种随机模式,得到的结果也就不同。
X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.5,random_state=10)
# 模型的选择
# 引入模型对象
from sklearn import linear_model
# 实例化对象
reg = linear_model.LinearRegression()
X_train
len(X_train)
# 模型的训练
# 给模型训练集数据,对模型进行训练
# 模型的拟合
reg.fit(X_train,y_train)
# 模型的预测
# 传测试集属性数据,得到预测的标签
y_predict = reg.predict(X_test)
y_predict
# 模型的测评
# 线性回归预测 可以使用均方误差MSE测评
# 均方误差:反映估计量与被估计量之间差异程度的一种度量
from sklearn import metrics
print(metrics.mean_squared_error(y_test,y_predict))
# 交叉验证
# 交叉验证:将数据分成n等份,每次取其中1份作为测试集,其余作为训练集进行评测,重复n次,取n次的平均值作为结果
from sklearn.model_selection import cross_val_score
# 参数:模型,数据属性,数据标签,验证次数,评测方法, cv验证次数
# 返回:得分的数组 5次平均分做得分
scores = cross_val_score(reg,X,y,cv=5,scoring='neg_mean_squared_error')
scores
# 模型的保存
import joblib
# 保存
joblib.dump(reg,'filename.pkl')