一、数据挖掘流程
1.数据读取
-读取数据
-统计指标
-数据规模
2.数据探索(特征理解)
-单特征的分析,诸个变量分析对结果y的影响(x,y的相关性)
-多变量分析(x,y之间的相关性)
-统计绘图
3.数据清洗和预处理
-缺失值填充
-标准化、归一化
-特征工程(筛选有价值的特征)
-分析特征之间的相关性
4.建模
-特征数据的准备和标签
-数据集的切分
-多种模型对比:交叉验证、调参(学习曲线,网格搜索)
-集成算法(提升算法)XGBoost、GBDT、light-GBM、神经网络(多种集成)
二、代码实现
1.数据读取
数据集可以去kaggle下载:Titanic - Machine Learning from Disaster | Kaggle。
data = pd.read_csv('./data/train.csv')
pd.set_option('display.max_columns', 20)
print(data.head(4))
print(data.info())
print(data['Survived'].value_counts()) # 当前列计数
2、数据探索
# 标签比例 获救比例,饼图
f, ax = plt.subplots(1, 2, figsize=(10, 6))
data['Survived'].value_counts().plot.pie(explode=[0, 0.1], # 偏移量
autopct='%1.1f%%', # 百分比保留小数位数
ax=ax[0], shadow=True)
ax[0].set_title('Survived') # 图一标题
sns.countplot('Survived', saturation=0.75, # 饱和度
data=data, ax=ax[1]) # 柱状图
plt.show()
# 男女获救比例
print(data.groupby(['Sex', 'Survived'])['Survived'].count())
sns.countplot('Sex', hue='Survived', data=data) # 柱状图
plt.show()
# 船舱等级和获救之间的关系
print(pd.crosstab(data['Pclass'], data['Survived'], margins=True))
sns.countplot('Pclass', hue='Survived', data=data)
plt.show()
# 不同性别及船舱等级和获救之间的关系
print(pd.crosstab([data['Sex'], data['Survived']], data['Pclass'], margins=True))
sns.factorplot('Pclass', 'Survived',
hue='Sex', # 颜色
data=data) # 降维画图
plt.grid()
plt.show()