买房什么时候才是最划算的?Python来实现房价预测。

detect_outliers()是自定义函数,用sklearn库的LocalOutlierFactor算法计算离群点。

到这里, EDA 就完成了。最后,将训练集和测试集合并,进行下面的特征工程。

y = train.SalePrice.reset_index(drop=True)

train_features = train.drop([‘SalePrice’], axis=1)

test_features = test

features = pd.concat([train_features, test_features]).reset_index(drop=True)

features合并了训练集和测试集的特征,是我们下面要处理的数据。

二. 特征工程

特征工程

2.1 校正特征类型

MSSubClass(房屋类型)、YrSold(销售年份)和MoSold(销售月份)是类别型特征,只不过用数字来表示,需要将它们转成文本特征。

features[‘MSSubClass’] = features[‘MSSubClass’].apply(str)

features[‘YrSold’] = features[‘YrSold’].astype(str)

features[‘MoSold’] = features[‘MoSold’].astype(str)

2.2 填充特征缺失值

填充缺失值没有统一的标准,需要根据不同的特征来决定按照什么样的方式来填充。

# Functional:文档提供了典型值 Typ

features[‘Functional’] = features[‘Functional’].fillna(‘Typ’) #Typ 是典型值

分组填充需要按照相似的特征分组,取众数或中位数

MSZoning(房屋区域)按照 MSSubClass(房屋)类型分组填充众数

features[‘MSZoning’] = features.groupby(‘MSSubClass’)[‘MSZoning’].transform(lambda x: x.fillna(x.mode()[0]))

#LotFrontage(到接到举例)按Neighborhood分组填充中位数

features[‘LotFrontage’] = features.groupby(‘Neighborhood’)[‘LotFrontage’].transform(lambda x: x.fillna(x.median()))

车库相关的数值型特征,空代表无,使用0填充空值。

for col in (‘GarageYrBlt’, ‘GarageArea’, ‘GarageCars’):

features[col] = features[col].fillna(0)

  • 20
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值