使用k近邻回归算法,对波士顿房价数据进行预测,画出真实值与预测值的对比图
时间: 2024-02-24 15:59:09 浏览: 27
好的,以下是回答:
首先需要准备波士顿房价数据集,使用sklearn库可以直接加载:
```python
from sklearn.datasets import load_boston
boston = load_boston()
X = boston.data
y = boston.target
```
然后需要进行数据预处理,包括归一化和数据集划分:
```python
from sklearn.preprocessing import StandardScaler
from sklearn.model_selection import train_test_split
scaler = StandardScaler()
X = scaler.fit_transform(X)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
```
接下来使用k近邻回归算法进行训练和预测:
```python
from sklearn.neighbors import KNeighborsRegressor
knn = KNeighborsRegressor(n_neighbors=5)
knn.fit(X_train, y_train)
y_pred = knn.predict(X_test)
```
最后绘制真实值与预测值的对比图:
```python
import matplotlib.pyplot as plt
plt.scatter(y_test, y_pred)
plt.plot([y_test.min(), y_test.max()], [y_test.min(), y_test.max()], 'k--', lw=3)
plt.xlabel('True')
plt.ylabel('Predicted')
plt.show()
```
绘制的图像中,横轴为真实值,纵轴为预测值,每个点代表一个测试样本的真实值和预测值。黑色虚线为理想情况下的对角线,真实值和预测值完全一致时落在该线上。
请注意,由于k近邻回归算法的预测结果受到k值和距离度量方式的影响,因此需要进行参数调优和模型选择。