机器学习 day6 -线性回归练习

题目‌:

  1. Kaggle的"House Prices - Advanced Regression Techniques"数据集
  2. 使用Pandas读取数据,并查看数据的基本信息。
  3. 选择一些你认为对房屋价格有重要影响的特征,并进行数据预处理(如缺失值处理、异常值处理等)。
  4. 使用matplotlib绘制特征与目标变量(房屋价格)之间的散点图或箱线图,观察它们之间的关系。
  5. 将数据分为训练集和测试集。
  6. 使用numpy或scikit-learn搭建一个线性回归模型,并在训练集上进行训练。
  7. 在测试集上评估模型的性能,并计算均方误差(MSE)或均方根误差(RMSE)。
  8. 尝试使用不同的特征组合或进行特征选择,观察模型性能的变化。
python 复制代码
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LinearRegression

# 中文显示
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False


# 使用Pandas读取数据,并查看数据的基本信息。
data = pd.read_csv('./train.csv')
print(data.head())

# 选择一些你认为对房屋价格有重要影响的特征,并进行数据预处理(如缺失值处理、异常值处理等)。
# 判断是否有缺失值
print(data.isnull().sum())
# 使用中位数填充缺失值
data['LotFrontage'] = data['LotFrontage'].fillna(data['LotFrontage'].median())
data['MasVnrArea'] = data['MasVnrArea'].fillna(data['MasVnrArea'].median())
data['GarageYrBlt'] = data['GarageYrBlt'].fillna(data['GarageYrBlt'].median())
# 异常值处理
data = data[data['SalePrice'] < 500000]

# 使用matplotlib绘制特征与目标变量(房屋价格)之间的散点图或箱线图,观察它们之间的关系。
plt.scatter(data['GrLivArea'], data['SalePrice'], alpha=0.5)
plt.title('住房面积与房价的关系')
plt.xlabel('住房面积')
plt.ylabel('房价')
plt.show()

# 选择数值型特征
numeric_features = data.select_dtypes(include=[np.number]).columns.tolist()
numeric_features.remove('SalePrice')  # 移除目标变量

# 将数据分为训练集和测试集。
x = data[numeric_features]  # 只使用数值型特征
y = data['SalePrice']

# 特征工程(标准化)
transfer = StandardScaler()
# 将数值型特征进行标准化
x = transfer.fit_transform(x)

# 使用scikit-learn搭建一个线性回归模型,并在训练集上进行训练。
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)

# 在测试集上评估模型的性能,并计算均方误差(MSE)或均方根误差(RMSE)。
y_predict = model.predict(x_test)
mse = np.mean((y_predict - y_test) ** 2)
rmse = np.sqrt(mse)
print(f"均方误差(MSE):{mse}")
print(f"均方根误差(RMSE):{rmse}")

plt.show()
python 复制代码
Pytorch) c:\Users\Wennight531\Desktop\机器学习\day6>D:/Anaconda/envs/Pytorch/python.exe c:/Users/Wennight531/Desktop/机器学习/day6/House_prices.py
   Id  MSSubClass MSZoning  LotFrontage  LotArea Street Alley  ... MiscFeature MiscVal MoSold YrSold SaleType SaleCondition SalePrice
0   1          60       RL         65.0     8450   Pave   NaN  ...         NaN       0      2   2008       WD        Normal    208500       
1   2          20       RL         80.0     9600   Pave   NaN  ...         NaN       0      5   2007       WD        Normal    181500       
2   3          60       RL         68.0    11250   Pave   NaN  ...         NaN       0      9   2008       WD        Normal    223500       
3   4          70       RL         60.0     9550   Pave   NaN  ...         NaN       0      2   2006       WD       Abnorml    140000       
4   5          60       RL         84.0    14260   Pave   NaN  ...         NaN       0     12   2008       WD        Normal    250000       

[5 rows x 81 columns]
Id                 0
MSSubClass         0
MSZoning           0
LotFrontage      259
LotArea            0
                ...
MoSold             0
YrSold             0
SaleType           0
SaleCondition      0
SalePrice          0
Length: 81, dtype: int64
均方误差(MSE):784419750.0907469
均方根误差(RMSE):28007.494534333964
相关推荐
Codebee7 小时前
能力中心 (Agent SkillCenter):开启AI技能管理新时代
人工智能
聆风吟º7 小时前
CANN runtime 全链路拆解:AI 异构计算运行时的任务管理与功能适配技术路径
人工智能·深度学习·神经网络·cann
uesowys7 小时前
Apache Spark算法开发指导-One-vs-Rest classifier
人工智能·算法·spark
AI_56787 小时前
AWS EC2新手入门:6步带你从零启动实例
大数据·数据库·人工智能·机器学习·aws
User_芊芊君子8 小时前
CANN大模型推理加速引擎ascend-transformer-boost深度解析:毫秒级响应的Transformer优化方案
人工智能·深度学习·transformer
智驱力人工智能8 小时前
小区高空抛物AI实时预警方案 筑牢社区头顶安全的实践 高空抛物检测 高空抛物监控安装教程 高空抛物误报率优化方案 高空抛物监控案例分享
人工智能·深度学习·opencv·算法·安全·yolo·边缘计算
qq_160144878 小时前
亲测!2026年零基础学AI的入门干货,新手照做就能上手
人工智能
Howie Zphile8 小时前
全面预算管理难以落地的核心真相:“完美模型幻觉”的认知误区
人工智能·全面预算
人工不智能5778 小时前
拆解 BERT:Output 中的 Hidden States 到底藏了什么秘密?
人工智能·深度学习·bert
盟接之桥8 小时前
盟接之桥说制造:引流品 × 利润品,全球电商平台高效产品组合策略(供讨论)
大数据·linux·服务器·网络·人工智能·制造