小白自学——房价预测(七)

数据预处理

这里我们会用到虚拟变量进行一个预处理。虚拟变量(dummy variable)是指用0或1来表示某个特定的分类是否存在的人工变量,这里我们对floors、grade做编码处理,将bedrooms和bathrooms看作是连续变量。

ordinal_cols = ['floors', 'grade']

for col in ordinal_cols:
    dummies = pd.get_dummies(kc_train[col], drop_first=False)
    dummies = dummies.add_prefix("{}#".format(col))
    kc_train.drop(col, axis=1, inplace=True)
    kc_train = kc_train.join(dummies)
    
kc_train.info()

drop_first 是否从备选项中删除第一个,建模的时候为避免共线性使用。
dummies.add_prefix()是加前缀的函数。
kc_train.drop()是代表删除数据框某行。其中的axis=0代表跨行,axis=1代表跨列,这里代表的是将“列名”对应的列标签沿着水平的方向依次删除。
kc_train = kc_train.join(dummies)代表将处理好的虚拟变量赋值。

输出结果如下
在这里插入图片描述
由于连续变量太多还有包含yr_renovated这类比较难以处理的变量,这里我们暂不做数据归一化处理。
接下来我们再分割训练集。

import imp
from sklearn.model_selection import train_test_split

np.random.seed(21)
target = kc_train['price']
kc_train.drop('price', axis=1, inplace=True)
train_data, val_data, train_y, val_y = train_test_split(kc_train, target, train_size=0.8, random_state=21)

np.random.seed(21) 指定生成“特定”的随机数-与seed 21 相关
sklearn.cross_validation.train_test_split(*arrays, **options)的参数

*arrays:具有相同长度/形状的可索引序列。
train_size:训练集所占的比例,在(0,1)之间
random_state :随机种子数,可选int,RandomState instance或者none。默认值是none,如果是int,则random_state是随机数生成器使用的种子; 如果是RandomState实例,则random_state是随机数生成器; 如果没有,随机数生成器所使用的RandomState实例np.random。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值