预处理

当我们拿到一批原始的数据

  1. 首先要明确有多少特征,哪些是连续的,哪些是类别的。
  2. 检查有没有缺失值,对缺失的特征选择恰当方式进行弥补,是数据完整。
  3. 对连续的数值型特征进行标准化,是的均值为0,方差为1.
  4. 对类别型的特征进行one-hot编码。
  5. 将需要转换成类别型数据的连续型数据进行二值化。
  6. 为防止过拟合或者其他原因,选择是否要将数据进行正则化。
  7. 在dataset中,假如数据格式是[n,30]n是样本数,29个特征,1个类别,则可以scatter 29张散点图,每次一个特征跟类别做展示,分别看每个特征跟类别有什么相关性。

数据概览:info(),describe()

读取一个数据文件之后,可以采用.info()查看文件特征信息

还有df.describe()

其中count是个数,mean均值,std标准差,min最小值,25% 50% 75%分位数

数据查看:

df.head()#查看表头,显示每列前n个,默认五个

df.tail()#查看倒数的几行,与head相反

df.shape()#查看行列

df.dtype()#查看数据类型

df.isnull().sum()#统计控制个数

缺失数据填充:

df.fillna(df.mode().iloc[0],inplace=True)#众数填充

df.fillna(df.median())#中位数填充

df[' '][df.age.isnull()]='0'#对某一列填充

连续特征值的规范化处理:MinMaxScaler,Normalizer,StandardScaler

fit_transform(这是偷懒的方法。一般是先对整个数据集(训练集和测试集合并起来)fit,再分别对训练集和测试集transform)

df.[' ']=df.[' '].rank#排序

特征二值化:Binarizer

from sklearn.preprocessing import Binarizer

Binarizer(threshold=  ).fit_transform(df[' '].values.reshape(-1,1))


模型评估与参数搜索

best_estimator_.get_params()