数据分析和处理,其实就是你计算模型前的预处理步骤。一个不合理的错误数据如果不在预处理的时候剔除,可能会对最终结果造成非常大的影响。
在很多时候,如果你换了能换的所有模型和参数,最后计算得到的模型的交叉验证误差一直不令人满意,非常可能是你的数据预处理没做好。
数据分析与处理是紧密相关的,这像是句废话,因为你既然分析到了数据不合理的地方自然是要进行相关处理的。
但可能是我还太菜,有时候比如你分析到了数据分布非正态化(即数值的count不是理想化的分布的时候),即使采用log/sin/cos/reciprocal transformation,也不一定就可以直接得到理想的高斯分布,例如我做课程设计的时候会遇到log transformation之后数据还是出现偏态分布的情况。
至于是否可以将transformation复合使用得到最理想的分布情况,就有待大神解答,我个人猜想太纠结这个也可能会引起过拟合(overfitting)。
本文假设你现在在kaggle上面对一个数据集,想通过train set得到模型。
首先要对数据集的总体有个了解,就是summary:
import pandas as pd
import numpy as np
df=pd.read_csv('./train.csv')
df.shape#看看数据集有几行几列
df.dtypes#看看每列的数据类型是什么
df.head()#看看前几列数据,对数据具体长啥球样有个概念
那么预处理目前我总结的有:
1. 缺失值</