使用波士顿数据集1. 加载或调用数据集 2. 检查数据是否有缺失及缺失值处理 3. 离群值检测及处理 4. 描述性统计分析 5. 绘图展示数据分布,对变量进行可视化展示 6. 使用随机森林进行变量选择7.变量选择后, 建立回归预测模型,通过各因素指标来预测房价,体现预测度量指标结果。 8. 与其他模型进行比较评估与实验结果分析,通过柱形图或者拟合曲线对实验结果进行可视化代码python
时间: 2024-03-22 09:42:15 浏览: 166
无监督特征嵌入聚类损坏图像数据集中的分布
以下是对应的Python代码:
1. 加载或调用数据集```python
from sklearn.datasets import load_boston
import pandas as pd
boston = load_boston()
data = pd.DataFrame(boston.data, columns=boston.feature_names)
data['target'] = boston.target
```
2. 检查数据是否有缺失及缺失值处理
```python
data.isnull().sum()
```
如果有缺失值,则可以进行缺失值处理,比如使用中位数或者平均数进行填充。
3. 离群值检测及处理
```python
import seaborn as sns
sns.boxplot(data=data, orient='h')
```
通过绘制箱线图查看是否存在离群值。如果存在离群值,可以考虑进行处理,比如删除或者替换。
4. 描述性统计分析
```python
data.describe()
```
可以查看各个变量的均值、标准差、最小值、最大值等统计信息。
5. 绘图展示数据分布,对变量进行可视化展示
```python
import matplotlib.pyplot as plt
plt.figure(figsize=(20, 5))
features = ['LSTAT', 'RM']
target = data['target']
for i, col in enumerate(features):
plt.subplot(1, len(features) , i+1)
x = data[col]
y = target
plt.scatter(x, y, marker='o')
plt.title(col)
plt.xlabel(col)
plt.ylabel('target')
```
可以通过散点图等方式对变量之间的关系进行可视化展示。
6. 使用随机森林进行变量选择
```python
from sklearn.ensemble import RandomForestRegressor
X = data.iloc[:, :-1]
y = data.iloc[:, -1]
model = RandomForestRegressor()
model.fit(X, y)
importance = model.feature_importances_
feature_names = X.columns
indices = np.argsort(importance)[::-1]
for f in range(X.shape[1]):
print("%2d) %-*s %f" % (f+1, 30, feature_names[indices[f]], importance[indices[f]]))
```
通过随机森林算法对变量进行选择并排序,可以查看各个变量的重要性。
7. 变量选择后,建立回归预测模型,通过各因素指标来预测房价,体现预测度量指标结果。
```python
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error
from sklearn.linear_model import LinearRegression
X = data[['LSTAT', 'RM']]
y = data['target']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
model = LinearRegression()
model.fit(X_train, y_train)
y_pred = model.predict(X_test)
mse = mean_squared_error(y_test, y_pred)
print('MSE: %0.4f' % mse)
```
通过线性回归模型进行预测,可以查看预测度量指标,比如均方误差。
8. 与其他模型进行比较评估与实验结果分析,通过柱形图或者拟合曲线对实验结果进行可视化
```python
from sklearn.tree import DecisionTreeRegressor
from sklearn.ensemble import RandomForestRegressor, GradientBoostingRegressor
X = data.iloc[:, :-1]
y = data.iloc[:, -1]
models = [LinearRegression(), DecisionTreeRegressor(), RandomForestRegressor(), GradientBoostingRegressor()]
names = ['Linear Regression', 'Decision Tree', 'Random Forest', 'Gradient Boosting']
results = []
for model in models:
model.fit(X, y)
y_pred = model.predict(X)
mse = mean_squared_error(y, y_pred)
results.append(mse)
plt.figure(figsize=(10, 5))
plt.bar(names, results)
plt.title('Comparison of Regression Models')
plt.xlabel('Model')
plt.ylabel('MSE')
```
通过比较不同模型的表现,可以使用柱形图对结果进行可视化。
阅读全文