第一,获取数据;
第二,数据预处理;
目的:让数据适应模型,匹配模型的需求;
1、数据无量纲化:数据归一化处理(中心化和缩放处理);数据标准化
2、缺失值:使用impute.SimpleImputer
from sklearn.impute import SimpleImputer
imp_mean = SimpleImputer() #实例化,默认均值填补
imp_median = SimpleImputer(strategy="median") #用中位数填补
imp_0 = SimpleImputer(strategy="constant",fill_value=0) #用0填补
imp_mean = imp_mean.fit_transform(Age) #fit_transform一步完成调取结果
imp_median = imp_median.fit_transform(Age)
imp_0 = imp_0.fit_transform(Age)
或者BONUS:用Pandas和Numpy进行填补:
data_.loc[:,"Age"] = data_.loc[:,"Age"].fillna(data_.loc[:,"Age"].median())
#.fillna 在DataFrame里面直接进行填补
3、处理分类型特征:编码与哑变量。
数据进行
编码
,即是说,
将文字型数据转换为数值型
。
preprocessing.LabelEncoder
:标签专用,能够将分类转换为分类数值
preprocessing.OrdinalEncoder
:特征专用,能够将分类特征转换为分类数值
名义编码:需要使用独热编码,将其他特征都转换为哑变量。
preprocessing.OneHotEncoder
:独热编码,创建哑变量。
4、处理连续型特征:二值化与分段
sklearn.preprocessing.Binarizer 根据阈值将数据二值化(将特征值设置为0
或
1),用于
处理连续型变量。大于阈值的值映射为
1
,而小于或等于阈
值的值映射为
0
。默认阈值为
0
时,特征中所有的正值都映射到
1
preprocessing.KBinsDiscretizer 这是将连续型变量划分为分类变量的类,能够将连续型变量排序后按顺序分箱后编码。
第三,特征工程:feature_selection;
目的:1)降低计算成本;2)提升模型上限
1、filter过滤法:全部特征--------->最佳特征子集-------------->算法-------------->模型评估
方差过滤:VarianceThreshold
相关性过滤:卡方过滤feature_selection.chi2
互信息法:feature_selection.SelectFromModel 、
2、Embedded嵌入法
3、Wrapper包装法:feature_selection.RFE
第四,建模,测试模型并预测结果;
第五,上线,验证模型效果。