首先第一步是先对数据有个整体的认识
data = pd.read_csv('train.csv')
dataframe = pd.DataFrame(data)
dataframe.info()
dataframe.isnull().any()
然后先不管存在有缺失值的属性特征,先把全的特征给分析一波
redataframe.info()
redataframe.describe()
然后剔除类别型特征,就分析连续特征了(注意如果本身数据类别特征就是用0,1这样来表示的那么就要手动剔除了)
这里利用.drop()方法
print '总结首先筛选数值型特征的方法:'
print '首先去掉有缺失值的特征:'
fulldataframe = dataframe.dropna(axis=1)
fulldataframe.info()
print '接下来进行类别特征筛选:'
clist = fulldataframe.columns.values.tolist()
for Index, Types in enumerate(fulldataframe.dtypes):
if Types == 'object':
fulldataframe = fulldataframe.drop(columns=clist[Index],axis=1)
fulldataframe
fulldataframe.info()
然后是看之间的关系,可以化pairplot或者barplot
这里看是分类问题还是回归问题,连续型特征数值还是离散型
对于离散型取值可以考虑采用数量统计
对于离散值可以采用pairplot
然后再求一下相关度corr(注意这里就算存在有缺失值的情况也可以求相关)
corr = df.corr()
sns.heatmap(corr, cmap='Reds')
在处理类别属性时可以采用get_dummies方法对类目型的特征因子化
下面来对缺失值进行一波预测
仍然是先分析相关度,对于相关性不是接近于0的都不删除(一般来说还是经验判断)
这时候类别特征也不要丢弃!
类别特征把取值转换成one hot编码,采用pd.get_dummies
看heatmap,corr
然后就用sklearn中的模型进行简单的预测
常用的就是randomforestreg