多元线性回归算法

本例使用波士顿房价数据 

(一)全部代码

from sklearn.datasets import load_boston
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
import pandas as pd
import numpy as np

'''load_boston 波士顿房价数据导入'''
Boston=load_boston()
print(type(Boston))  #相当于 npz文件,保存npz
x=Boston['data'] #数据特征值
y=Boston['target'] #标签
names=Boston['feature_names'] #特征名称
# print(names)
#--------------------------与算法无关----------------------------------
#将数据存储起来,这里是拓展,与本算法无关
# df=pd.DataFrame(x,columns=names,index=range(len(y)))
# pf=pd.DataFrame(y,columns=['label'],index=range(len(y)))
# data=pd.concat([df,pf],axis=1) 
# data.to_excel('boston.xls') #保存进Excel
# print(data)
#------------------------------------------------------------

#分割测试集和训练集
#x与y中各划分出train与test,test占0.2即20%,train占0.8即80% 返回四个值
x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=0.2) 

#拿出x于y的80%训练构建回归模型clf
clf=LinearRegression().fit(x_train,y_train)
print('截距',clf.intercept_)
print('回归系数\n',clf.coef_)

#预测
#利用回归模型clf对x的20%的数据进行预测得y_pred,与真实值y_test进行对比
y_pred=clf.predict(x_test)  #使用模型预测y值
result=np.concatenate((y_pred.reshape(-1,1), y_test.reshape(-1,1)), axis=1) #-1根据另一个值,计算行或列的数量 自动匹配
print(result)

(二)与算法无关的部分代码解析

(1)

'''load_boston 波士顿房价数据导入'''
Boston=load_boston()
print(type(Boston))  #相当于 npz文件,保存npz
x=Boston['data'] #数据特征值
y=Boston['target'] #标签
names=Boston['feature_names'] #特征名称
# print(names)

多元线性回归算法_第1张图片

 (2)

df=pd.DataFrame(x,columns=names,index=range(len(y)))

print(df)

多元线性回归算法_第2张图片

(3)

pf=pd.DataFrame(y,columns=['label'],index=range(len(y)))

print(pf)

多元线性回归算法_第3张图片 

(4)

data=pd.concat([df,pf],axis=1)

print(data)

你可能感兴趣的:(人工智能)