参与 kaggle

Kaggle competition流程

机器学习的生命周期

  1. 理解问题
  2. 获取并理解数据
  3. EDA,探索性数据分析
  4. 特征工程
  5. 建模与训练
  6. 模型评估与优化
  7. 提交与总结

前两个在 kaggle 上面并不难,或者说理解问题,理解数据,纯粹靠大脑以及自己的检索能力,没什么好说的,我也暂时能够处理,不想要去想什么固定的算法。

行为,做事情的阻塞感,就是因为自己的算法不明确,东头做点,西边做点,最后什么都做不成

EDA

探索数据。

其实有个非常简单的过程,分析数据不外乎就这三条:

  1. 数据概览
  2. 单变量分析
  3. 多变量分析

接下来依次说明。

数据概览

看数据类型:

df.info()

看具体数据:

df.head()

看缺失值:

df.isnull().sum()

这里还需要明确两种特征类型:

  1. 分类特征,比如男女
  2. 连续特征,比如年龄

可以通过:

df.nunique()

进行间接查看,数量比较少的,就是分类特征,数量多的就是连续特征

单变量分析

就是看查看具体数据,这个变量有什么内在的特征。

比如查看男女数量什么的,看是男的多还是女的多,机器学习就像是侦探游戏。

对于分类特征:

# import seaborn as sns
sns.countplot(x = 'feature', data=train_data) # 也可以加上hue参数,让hue等于目标变量

对于连续特征:

sns.histplot(data=train_data, x = 'feature') # 这个有挺多参数的,可以之后查看

多变量分析

  1. 这个变量与目标量这两个变量的关系

分类变量

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'不重叠
  1. 特征之间存在影响,共同作用于 taget,或者有相关性什么的