#CRIM城镇人均犯罪率
#ZN占地面积超过2 5万平方英尺的住宅用地比例
#INDUS城镇非零售业务地区的比例
#CHAS查尔斯河虚拟变量(= 1如果土地在河边;否则是0)
#NOX-氧化氮浓度(每1000万份)
#RM平均每居民房数
#AGE在40年之前建成的所有者占用单位的比例
#DIS与2入发土顿就业中心的加权距离
#RAD辐射状公路的可达性指数
#TAX每10,000美元的全额物业税率
#PTRATIO城镇师生比例
#B 1000(Bk- 0.63)^2其中Bk是城镇的黑人比例
#LSTAT人口中地位较低人群的百分数
#MEDV以1000美元计算的自有住房的中位数
#关键步骤:
#1.加载数据
#2.划分训练集和测试集
#3.创建线性回归模型
#4.拟合训练数据
#5.得到预测结果
#6.计算相应的评测指标
import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression #线性回归(Linear Regression)是利用称为线性回归方程的最小平方函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析。
from sklearn.model_selection import train_test_split #在机器学习中,该函数可按照用户设定的比例,随机将样本集合划分为训练集 和测试集,并返回划分好的训练集和测试集数据。
from sklearn import datasets #导入数据集
from sklearn.metrics import mean_squared_error #导入平均平方差函数
boston = datasets.load_boston()
#print(boston)
data = boston['data'] #影响房价的数据
target = boston['target'] #目标值:房价
data_shape = data.shape #506个数据,13个属性
target_shape = target.shape #506个目标值,即房价数据
data_train,data_test,targe_train,target_test = train_test_split(data,target,test_size=0.2) #测试集训练集划分
lr = LinearRegression() #构建模型
lr.fit(data_train,targe_train)#拟合训练数据,得到拟合参数
predict_result = lr.predict(data_test) #预测房价数据
true_result = target_test
#print(predict_result) #预测结果
#print(true_result) #真实结果
error = mean_squared_error(predict_result,true_result)#平均平方差误差
print(error)