以“户型”和“建筑面积”为参考数据(特征值),利用sklearn库的支持向量回归函数(LinearSVR()函数)对以下2套二手房之后的房子数量和总价进行预测 房屋一:建筑面积88.00平方米,2室1厅1卫; 房屋二:建筑面积136.00平方米,3室2厅2卫; 绘制两条折线图
时间: 2024-10-14 11:14:27 浏览: 27
首先,为了预测房屋数量和总价,我们需要准备一些训练数据集,其中包含实际的房源信息(如面积、房间数等)、房子的数量以及对应的总价。假设我们已经有了这样的历史数据,并且已经安装了`sklearn`库。
在Python中,我们可以按照以下步骤操作:
1. 导入所需的库:
```python
import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.svm import LinearSVR
import matplotlib.pyplot as plt
```
2. 加载数据并预处理:
```python
# 假设df是一个DataFrame,包含'建筑面积', '户型', '房子数量', '总价'等列
data = df[['建筑面积', '户型编码', '房子数量', '总价']]
# 如果需要,可以将户型编码转换成数值表示
data['户型编码'] = data['户型编码'].map({2室1厅1卫: 0, 3室2厅2卫: 1})
# 将数据分为特征(X)和目标变量(y)
X = data[['建筑面积', '户型编码']]
y = data[['总价']]
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 对特征进行标准化处理
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)
```
3. 使用支持向量回归模型进行拟合和预测:
```python
svr = LinearSVR(kernel='linear')
svr.fit(X_train_scaled, y_train)
# 预测测试集的结果
y_pred = svr.predict(X_test_scaled)
```
4. 绘制折线图:
```python
plt.figure(figsize=(10, 6))
plt.scatter(X_test['建筑面积'], y_test['总价'], label='实际数据')
plt.plot(X_test['建筑面积'], y_pred, color='red', label='预测结果')
plt.xlabel('建筑面积')
plt.ylabel('总价')
plt.title('二手房价格预测')
plt.legend()
plt.show()
# 分别画出房子数量的预测曲线,类似上一步骤
plt.figure()
y_num_pred = svr.predict(X_test_scaled[:, :2]) # 只考虑面积和户型,忽略其他因素的影响
plt.scatter(X_test['建筑面积'], y_num_pred, label='数量预测')
plt.xlabel('建筑面积')
plt.ylabel('预期房子数量')
plt.legend()
plt.show()
```
这样就完成了基于面积和户型的预测任务,同时展示了房价和房子数量的预测折线图。
阅读全文