人工智能-波士顿房价

sklearn中boston数据集--------波士顿房价数据集包含506组数据,每条数据包含房屋以及房屋周围的详细信息。其中包含城镇犯罪率、一氧化氮浓度、住宅平均房间数、到中心区域的加权距离以及自住房平均房价等。因此,波士顿房价数据集能够应用到回归问题上。

要求:用正则化的线性回归算法(ridge)去拟合数据,并输出使用不同α时,对应的预测精度图。具体可以按照以下步骤来完成

  1. 加载数据并做预处理(切分训练集、测试集)。
  2. 正确建立ridge模型并对数据进行训练,输出不同α时对应的预测精度
  3. 画出迭代次数与预测精度的曲线图。
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.linear_model import Ridge
from sklearn.datasets import load_boston
import matplotlib.pyplot as plt

# 正常显示中文
plt.rcParams['font.sans-serif'] = ['SimHei']
# 正常显示负数
plt.rcParams['axes.unicode_minus'] = False


# 加载数据
data = load_boston()
# 提取数据
X = data.data
y = data.target
# 切分数据为 训练集和测试集数据
X_train,X_test,y_train,y_test = train_test_split(X,y,test_size=0.25,random_state=0)
# 初始化alphas
alphas = [0.00001,0.1,0.2,0.3,0.4,0.5,1,2,3,4,5,10,20,30,40,50,100,200,300,400,500,1000]
scores = []
for alpha in alphas:
    #  建立Ridge模型
    model = Ridge(alpha=alpha)
    # 训练模型
    model.fit(X_train,y_train)
    # 计算精度
    scores.append(model.score(X_test,y_test))
print(scores)
# 画出迭代次数与预测精度的曲线图
plt.title('迭代次数与预测精度的曲线图')
plt.plot(alphas,scores)
plt.xscale('log')
plt.show()

 

posted @ 2019-07-19 08:14  Timcode  阅读(444)  评论(0编辑  收藏  举报