当我们拿到一批原始的数据
- 首先要明确有多少特征,哪些是连续的,哪些是类别的。
- 检查有没有缺失值,对缺失的特征选择恰当方式进行弥补,是数据完整。
- 对连续的数值型特征进行标准化,是的均值为0,方差为1.
- 对类别型的特征进行one-hot编码。
- 将需要转换成类别型数据的连续型数据进行二值化。
- 为防止过拟合或者其他原因,选择是否要将数据进行正则化。
-
在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()