参与 kaggle
机器学习的生命周期
- 理解问题
- 获取并理解数据
- EDA,探索性数据分析
- 特征工程
- 建模与训练
- 模型评估与优化
- 提交与总结
前两个在 kaggle 上面并不难,或者说理解问题,理解数据,纯粹靠大脑以及自己的检索能力,没什么好说的,我也暂时能够处理,不想要去想什么固定的算法。
行为,做事情的阻塞感,就是因为自己的算法不明确,东头做点,西边做点,最后什么都做不成
EDA
探索数据。
其实有个非常简单的过程,分析数据不外乎就这三条:
- 数据概览
- 单变量分析
- 多变量分析
接下来依次说明。
数据概览
看数据类型:
df.info()看具体数据:
df.head()看缺失值:
df.isnull().sum()这里还需要明确两种特征类型:
- 分类特征,比如男女
- 连续特征,比如年龄
可以通过:
df.nunique()进行间接查看,数量比较少的,就是分类特征,数量多的就是连续特征
单变量分析
就是看查看具体数据,这个变量有什么内在的特征。
比如查看男女数量什么的,看是男的多还是女的多,机器学习就像是侦探游戏。
对于分类特征:
# import seaborn as sns
sns.countplot(x = 'feature', data=train_data) # 也可以加上hue参数,让hue等于目标变量对于连续特征:
sns.histplot(data=train_data, x = 'feature') # 这个有挺多参数的,可以之后查看多变量分析
- 这个变量与目标量这两个变量的关系
分类变量
df.groupby('feature')['target'].mean()
# 或者画图
sns.barplot(x='feature',y='target',data=train_data)连续变量
sns.boxplot(x,y,data)
sns.violinplot(x,y,data)
sns.histplot(data=data,x='feature',hue='target') #multiple='stack'不重叠- 特征之间存在影响,共同作用于 taget,或者有相关性什么的