波士顿房价预测python直方图
时间: 2023-11-08 17:04:36 浏览: 112
为了预测波士顿房价,可以使用Python的数据可视化库matplotlib来绘制直方图。直方图将房价分成不同的区间,并显示每个区间中有多少个房价值。以下是绘制波士顿房价预测的Python代码:
```python
plt.hist(df['MEDV'], bins=20, edgecolor='k')
plt.xlabel('房价')
plt.ylabel('频数')
plt.title('波士顿房价预测直方图')
plt.show()
```
这段代码将波士顿房价数据集中的房价列('MEDV')绘制成直方图,将房价分为20个间隔,并显示每个间隔中的频数。直方图可以帮助我们了解波士顿房价的分布情况。
相关问题
用python完成机器学习实验 波士顿房价预测需要的参考文献
以下是波士顿房价预测相关的参考文献:
1. 《Python机器学习基础教程》第二版,作者Sebastian Raschka和Vahid Mirjalili。该书介绍了使用Python进行机器学习的基本概念和技术,包括数据预处理、模型选择、评估和调优等。
2. “波士顿房价数据集”,该数据集包含了506个房屋的13个特征和价格的信息。可以在UCI机器学习库中获取。
3. “Scikit-learn”,是一个Python的机器学习库,包含了各种机器学习算法和工具,例如数据预处理、特征选择、模型选择、评估和调优等。可以使用该库来实现波士顿房价预测模型。
4. “Matplotlib”,是一个Python的数据可视化库,可以用于绘制各种图形,例如折线图、散点图、直方图等。可以使用该库来展示波士顿房价数据集和预测结果。
5. “Pandas”,是一个Python的数据分析库,可以用于数据读取、清洗、处理和转换等。可以使用该库来处理波士顿房价数据集。
希望以上参考文献能够帮助到你完成波士顿房价预测的机器学习实验。
1. 使用python读入数据sklearn中的波士顿房价的数据集。2. 对该数据集进行可视化(使用点图和核密度曲线直方图)3. 使用GBDT对模型进行预测,要求使用交叉验证训练,给出MSE误差曲线。
好的,我来为你提供Python的代码实现。
首先,我们需要导入相关的库和模块:numpy、pandas、matplotlib、sklearn等。然后,使用sklearn中的load_boston方法读入波士顿房价数据集。
```python
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.datasets import load_boston
boston = load_boston()
```
接下来,我们对数据集进行可视化。首先,使用散点图展示房价和房屋面积之间的关系。
```python
plt.scatter(boston.data[:, 5], boston.target)
plt.xlabel('RM')
plt.ylabel('Price')
plt.show()
```
然后,使用核密度曲线和直方图展示房屋面积和房间数目的分布情况。
```python
plt.figure(figsize=(10, 5))
plt.subplot(1, 2, 1)
plt.hist(boston.data[:, 5], bins=20)
plt.xlabel('RM')
plt.ylabel('Frequency')
plt.subplot(1, 2, 2)
plt.hist(boston.data[:, 6], bins=20)
plt.xlabel('LSTAT')
plt.ylabel('Frequency')
plt.show()
```
最后,我们使用GBDT模型对数据集进行预测,并使用交叉验证训练,给出MSE误差曲线。首先,我们需要将数据集分为训练集和测试集。
```python
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(boston.data, boston.target, test_size=0.3, random_state=42)
```
然后,我们可以使用sklearn中的GradientBoostingRegressor模型进行训练和预测。
```python
from sklearn.ensemble import GradientBoostingRegressor
from sklearn.metrics import mean_squared_error
from sklearn.model_selection import cross_val_score
# 创建GBDT模型
gbdt = GradientBoostingRegressor(n_estimators=100, learning_rate=0.1, max_depth=1, random_state=42)
# 训练模型
gbdt.fit(X_train, y_train)
# 预测模型
y_pred = gbdt.predict(X_test)
# 计算MSE
mse = mean_squared_error(y_test, y_pred)
print("MSE: %.2f" % mse)
# 使用交叉验证训练,并画出MSE误差曲线
scores = cross_val_score(gbdt, boston.data, boston.target, cv=10, scoring='neg_mean_squared_error')
plt.plot(np.arange(1, 11), -scores)
plt.xlabel('Number of folds')
plt.ylabel('MSE')
plt.show()
```
以上就是Python的代码实现,希望对你有帮助。
阅读全文