之前写过一篇 一个框架解决几乎所有机器学习问题 但是没有具体的例子和代码,今天看到一个不错的 kaggle 上的 code Exploratory Tutorial - Titanic 来解析一下,源码可以直接点这个链接。
在这篇文章中可以学到一个完整的运用机器学习解决分析问题的过程,它包括了解决问题的一般流程,描述性统计的常用方法,数据清洗的常用方法,如何由给定的普通变量启发式思考其他影响因素,sklearn 建立模型的一般流程,以及很火的 ensemble learning 怎么用。
下面进入正题:
在 Titanic: Machine Learning from Disaster 这个问题中,要解决的是根据所提供的 age,sex 等因素的数据,判断哪些乘客更有可能生存下来,所以这是一个分类问题。
在解决机器学习问题时,一般包括以下流程:
1. Data Exploration
这部分先导入常用的 Numpy,Pandas,Matplotlib 等包,导入训练集和测试集:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline
train = pd.read_csv('../input/train.csv')
test = pd.read_csv('../input/test.csv')
之后,可以用下面的命令先观察一下数据表的结构:
train.tail()
test.head()
train.describe()
接下来,可以观察各个变量的分布情况:
各个变量在测试集和训练集的分布差不多一致。
然后看一下各个变量对分类标签的影响:
例如,性别的影响,通过可视化可以发现,生还的乘客中女性多于男性.
或者 Pclass 的影响。