所有变量可以分为两种:
一、类型变量。
例如:天气情况可以从1-4中取值,可以用1表示晴天,2表示多云,3表示雨天,4可以表示雪天,诸如此类,我们统称为类型变量,这里需要注意一点是,这些数字大小并没有实际的意义,如4比1大,但不代表雪天就会比晴天更好。
二、数值变量。
例如:分数,温度等,这些可以从一个数值区间中连续取值的变量我梦统称为数值变量。
通过以上我们发现,不同类型变量的数值含义也不同,因此,在进行研究前我们需要对其进行预处理。
数据预处理:
类型变量→独热编码(one-hot)
将类型变量转化为独热编码
季节类型 | 独热编码 |
---|---|
1 | (1,0,0,0) |
2 | (0,1,0,0) |
3 | (0,0,1,0) |
4 | (0,0,0,1) |
代码:
dummy_fields = ['所有类型的编码变量的名称']
for ench in dummy_fields:
#取出所有类型变量,并将它们转变为独热编码
dummies = pd.get_dummies(rides[each], prefix=each, drop_first=false)
#将新的独热编码变量与原有的所有变量合并到一起
rides = pd.concat([rides,dummies], axis=1)]
#将原来的类型变量从数据表中删除
fields_to_drop = ['要删除的类型变量名称']
data = rides.drop(fields_to_drop, axit=1)
数值类型→标准化处理
用变量的均值和标准差来对变量做标准化,从而把特征数值的平均值变为0,标准差变为1。
代码:
quant_f = ['数值变量类型的名称']
scaled_f = {} # 将每一个变量的均值和方差都存储到scaled_f变量中
for each in quant_f:
# 计算这些变量的均值和方差
mean, std = data[each].mean(),data[each].std()
scaled_f[each] = [mean,std]
data.loc[:,each] = (data[each] - mean]/std