一、FE整体设计思路
二、FE分步骤处理
相关代码
#先把数据读进来
import pandas as pd
data = pd.read_csv('F:/File_Python/Resources/data_csv_xls/kaggle_bike_competition_train.csv', header = 0, error_bad_lines=False)
#查看数据字段
data.head()
#datetime小时计数、season季节、holiday是否假期、workingday工作日、weather天气、temp华氏温度、atemp、humidity湿度、windspeed风速、
#casual非注册租车人数、registered注册租车人数
输出结果
# 处理时间字段:把datetime域切成日期、时间两个字段。
temp = pd.DatetimeIndex(data['datetime'])
data['date'] = temp.date
data['time'] = temp.time
data.head()
#特征向量化
#打算用scikit-learn来建模。对于pandas的dataframe我们有方法/函数可以直接转成python中的dict
#还要对离散值和连续值特征区分一下了,以便之后分开做不同的特征处理。
from sklearn.feature_extraction import DictVectorizer
# 我们把连续值的属性放入一个dict中
featureConCols = ['temp','atemp','humidity','windspeed','dateDays','hour']
dataFeatureCon = dataRel[featureConCols]
dataFeatureCon = dataFeatureCon.fillna( 'NA' ) #in case I missed any
X_dictCon = dataFeatureCon.T.to_dict().values()
# 把离散值的属性放到另外一个dict中
featureCatCols = ['season','holiday','workingday','weather','Saturday', 'Sunday']
dataFeatureCat = dataRel[featureCatCols]
dataFeatureCat = dataFeatureCat.fillna( 'NA' ) #in case I missed any
X_dictCat = dataFeatureCat.T.to_dict().values()
# 向量化特征
vec = DictVectorizer(sparse = False)
X_vec_cat = vec.fit_transform(X_dictCat)
X_vec_con = vec.fit_transform(X_dictCon)