skleran 学习路径一 线性回归模型预测

使用sklearn 里面的datasets 内置数据集波士顿的房价 来测试这个模型
首先导入

from sklearn import datasets
loaded_data = datasets.load_boston()#波士顿房价预测
data_x = loaded_data.data
data_y = loaded_data.target

然后使用打出来的数据观察数据类型,确定数据的的测试集训练集

# print(loaded_data)
# print(data_x)
# print(data_y)
# print(data_x.shape)
# print(data_y.shape)

#可以看出有13个特征值  506个样本一个标签预测值

导入sklearn里面的linearRegression模型,并且划分测试集训练集,建立模型

在这里from sklearn import model_selection 
x_train,x_test,y_train,y_test=model_selection.train_test_split(data_x,data_y,test_size=0.25)
from sklearn.linear_model import LinearRegression
linreg=LinearRegression()
linregTr=linreg.fit(x_train,y_train)
test_pred=linreg.predict(x_test)插入代码片

输出线性回归的截距和系数矩阵

print(linregTr.coef_)
print(linregTr.intercept_)

对模型进行性能分析

在这里from sklearn import metrics 
mse_score=metrics.mean_squared_error(y_test,test_pred)
print('均方差',mse_score)
score_pred=linregTr.score(x_test,y_test)
print('准确率',score_pred)

from sklearn.model_selection import cross_val_predict 
predicted=cross_val_predict(linregTr,data_x,data_y,cv=10)
print('交叉验证后的mse_error',metrics.mean_squared_error(data_y,predicted))插入代码片

画图直观感受一下模型预测

在这里import matplotlib.pyplot as plt 
fig,axe=plt.subplots()
axe.scatter(y_test,test_pred,color='y',marker='o')
axe.scatter(data_y,predicted,color='b')
axe.scatter(data_y,data_y,color='g',marker='*')
plt.show()插入代码片

完整代码如下

在这里插入from sklearn import datasets
loaded_data = datasets.load_boston()#波士顿房价预测
data_x = loaded_data.data
data_y = loaded_data.target
# print(loaded_data)
# print(data_x)
# print(data_y)
# print(data_x.shape)
# print(data_y.shape)

#可以看出有13个特征值  506个样本一个标签预测值
from sklearn import model_selection 
x_train,x_test,y_train,y_test=model_selection.train_test_split(data_x,data_y,test_size=0.25)
from sklearn.linear_model import LinearRegression
linreg=LinearRegression()
linregTr=linreg.fit(x_train,y_train)
test_pred=linreg.predict(x_test)
print(linregTr.coef_)
print(linregTr.intercept_)

from sklearn import metrics 
mse_score=metrics.mean_squared_error(y_test,test_pred)
print('均方差',mse_score)
score_pred=linregTr.score(x_test,y_test)
print('准确率',score_pred)

from sklearn.model_selection import cross_val_predict 
predicted=cross_val_predict(linregTr,data_x,data_y,cv=10)
print('交叉验证后的mse_error',metrics.mean_squared_error(data_y,predicted))

import matplotlib.pyplot as plt 
fig,axe=plt.subplots()
axe.scatter(y_test,test_pred,color='y',marker='o')
axe.scatter(data_y,predicted,color='b')
axe.scatter(data_y,data_y,color='g',marker='*')
plt.show()代码片

skleran 学习路径一 线性回归模型预测_第1张图片
能明显看出线性回归模型对于偏差数据表现异常明显,所以数据在训练之前的处理就显得异常重要,换句话说也就是容易过拟合,此时采用其他的模型更加好一点,但是选择小数据判断时,线性回归模型绝对是首选

你可能感兴趣的:(机器学习路线)