看了台湾某教授的一部分ML课程,手痒痒,于是去下载了libsvm来玩玩。正巧学长介绍了kaggle这个有趣的网站,里面有很多数据的竞赛,就拿这个经典的泰坦尼克例子来学习吧-> [懒人请点] (https://www.kaggle.com/c/titanic)。
一、首先把titanic的数据下载下来,共三个文件: gender_submission.csv、test.csv、train.csv,分别是提交格式、测试集和训练集。用pandas的库函数来看看train set里究竟有哪些数据吧!
import pandas
titanic = pandas.read_csv('train.csv')
titanic.describe()
大致就是乘客ID、是否存活、舱位、年龄等等(由于测试集已经被作者处理过,所以建议读者亲自看一看,也可以直接打开train.csv观察)。
二、在大致观察过这些数据后,不难发现,直观上乘客存活的几率与年龄、性别、舱位、登船号有很大关联(年龄、登船口等数据有缺失部分待处理),而与其他数据如姓名、家人数量、票价等关联度不大,或者说没有明显的关系,那我们接下来做一个简单的处理:
def preDataHandle(f):
data_train = pd.read_csv(f)
#把年龄的缺失值用现有数据的中位数来替代并赋值给原数据
data_train['Age'] = data_train['Age'].fillna(data_train['Age'].median())
#把男性置0,女性置1
data_train.loc[data_train['Sex'] == 'male', 'Sex'