使用K近邻回归算法,对波士顿房价数据进行预测,并画出真实值和预测值的图像对比图
时间: 2024-02-24 13:00:04 浏览: 83
好的,我会尽力回答你的问题。关于K近邻回归算法预测波士顿房价数据,可以按照以下步骤进行:
- 导入所需的库和数据集
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsRegressor
from sklearn.metrics import mean_squared_error
# 导入数据集
boston = load_boston()
- 数据预处理
# 将数据集转化为DataFrame格式
boston_df = pd.DataFrame(boston.data, columns=boston.feature_names)
# 将目标变量MEDV添加到DataFrame中
boston_df['MEDV'] = boston.target
# 把数据集分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(boston_df[boston.feature_names], boston_df['MEDV'], test_size=0.2, random_state=42)
# 对特征数据进行标准化处理
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)
- 训练模型和预测
# 定义模型并进行训练
knn = KNeighborsRegressor(n_neighbors=5)
knn.fit(X_train_scaled, y_train)
# 在测试集上进行预测
y_pred = knn.predict(X_test_scaled)
- 评估模型性能
# 计算MSE
mse = mean_squared_error(y_test, y_pred)
print("Mean Squared Error (MSE): {:.2f}".format(mse))
- 绘制真实值和预测值的对比图
plt.figure(figsize=(10, 6))
# 绘制真实值
plt.plot(y_test.values, 'b', label='True')
# 绘制预测值
plt.plot(y_pred, 'r', label='Predicted')
plt.title("KNN Regression (MSE: {:.2f})".format(mse))
plt.xlabel("Samples")
plt.ylabel("Target value")
plt.legend()
plt.show()
这样就可以绘制出真实值和预测值的对比图了。
相关推荐















