目录
1. 问题选择
选择一个与回归分析问题相关的实际问题,例如房价预测、销售额预测、股票价格预测等。
我选择房价预测。
2. 数据收集与处理
- 收集与所选问题相关的数据集,确保数据集应包含至少一个目标变量(因变量)和若干个解释变量(自变量)。
在这里选用的是加州房价数据集,其中包含一个目标向量median_house_value,一个特征向量population,和若干其他变量MSSubClass,MSZoning,LotFrontage,LotArea,Street,...
2.对数据进行清洗和预处理,包括缺失值处理、异常值处理、数据标准化等
# 加载数据
df = pd.read_csv('D:\下载\实验二\housing.csv')
#将字符串类型的列转换为数值类型
for col in df.columns:
if df[col].dtype == 'object':
df[col] = pd.Categorical(df[col]).codes
# 删除包含缺失值的行
df.dropna(inplace=True)
# 检查数据中是否存在无穷大或 NaN 值
if not np.all(np.isfinite(df.values)):
raise ValueError("数据中存在无穷大或 NaN 值")
3.对数据集进行初步的探索性分析,包括描述性统计、可视化等,了解数据的分布特征、相关性等。
# 描述性统计
print(df.describe())
# 数据可视化
plt.figure(figsize=(10, 6))
sns.histplot(df['median_house_value'], kde=True)
plt.show()
# 相关性分析
correlation = df.corr()
print(correlation)
# 可视化相关性
plt.figure(figsize=(10, 8))
sns.heatmap(correlation, annot=True, cmap='coolwarm')
plt.show()
3. 模型建立
- 根据数据集的特点,选择合适的回归模型(如线性回归、逻辑回归、决策树回归、随机森林回归等)。
选择线性回归模型。
2.使用所选的回归模型对数据进行拟合,得到回归方程或模型。
#将数据集分为特征向量和目标向量,并训练回归模型
X = df[['population']]
y = df['median_house_value