实现波士顿房价预测代码,要求如下: 分析数据集; 构建模型; 训练模型; 预测
时间: 2024-02-22 17:59:29 浏览: 72
好的,我会按照您的要求来实现波士顿房价预测代码。首先,我们需要导入所需的库和数据集。
```python
# 导入所需的库
import pandas as pd
import numpy as np
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error, r2_score
# 导入波士顿房价数据集
boston = load_boston()
boston_df = pd.DataFrame(boston.data, columns=boston.feature_names)
boston_df['PRICE'] = boston.target
```
接下来,我们需要对数据集进行分析,看一下数据的情况。我们可以使用 `describe()` 方法来获取数据的基本统计信息。
```python
# 查看数据集的基本统计信息
print(boston_df.describe())
```
然后,我们需要将数据集分为训练集和测试集,以便我们可以构建和训练模型。
```python
# 将数据集分为训练集和测试集
X = boston_df.drop('PRICE', axis=1)
y = boston_df['PRICE']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
```
接下来,我们可以构建模型,这里我们选择使用线性回归模型。
```python
# 构建线性回归模型
model = LinearRegression()
```
然后,我们可以对模型进行训练。
```python
# 训练模型
model.fit(X_train, y_train)
```
最后,我们可以使用训练好的模型来进行预测。
```python
# 预测结果
y_pred = model.predict(X_test)
```
为了评估模型的性能,我们可以计算均方误差和决定系数。
```python
# 计算均方误差和决定系数
mse = mean_squared_error(y_test, y_pred)
r2 = r2_score(y_test, y_pred)
print('Mean Squared Error:', mse)
print('R2 Score:', r2)
```
完整代码如下:
```python
# 导入所需的库
import pandas as pd
import numpy as np
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error, r2_score
# 导入波士顿房价数据集
boston = load_boston()
boston_df = pd.DataFrame(boston.data, columns=boston.feature_names)
boston_df['PRICE'] = boston.target
# 查看数据集的基本统计信息
print(boston_df.describe())
# 将数据集分为训练集和测试集
X = boston_df.drop('PRICE', axis=1)
y = boston_df['PRICE']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
# 构建线性回归模型
model = LinearRegression()
# 训练模型
model.fit(X_train, y_train)
# 预测结果
y_pred = model.predict(X_test)
# 计算均方误差和决定系数
mse = mean_squared_error(y_test, y_pred)
r2 = r2_score(y_test, y_pred)
print('Mean Squared Error:', mse)
print('R2 Score:', r2)
```
希望这个代码对您有所帮助!
阅读全文