由于昨天毫无目标的调整参数, 很快用完了kaggle的十次提交机会。
以后, 需要有目标的提交, 防止浪费提交次数。
1 如何观察数据
1.1 通过四个方法, 观察数据
method 1:
import pandas as pd
df = pd.read_csv('titanic/train.csv')
method 2:
df.shape
(891, 12)
method 3:
df.count()
PassengerId 891
Survived 891
Pclass 891
Name 891
Sex 891
Age 714
SibSp 891
Parch 891
Ticket 891
Fare 891
Cabin 204
Embarked 889
dtype: int64
Survived: label
features: 10 个
Pclass 891
Name 891
Sex 891
Age 714
SibSp 891
Parch 891
Ticket 891
Fare 891
Cabin 204
Embarked 889
method 4:
df.describe()
本来认为, 有些feature是没用的, 比如, Name, 其实未必, 为了达到更高的分数,有必要分析。重要的如何充分的利用原始数据, 对没有的数据得到最好的预测, 比如如果有人问你的属相, 其实就是问你年龄, Age: 数据中只有714个, 但昨天的分析中, 是很重要的参数, 如何预测年龄, 如果取平均值, 未必是最好的结果, 但通过Name是可以预测的,总之一定要尽可能挖掘数据, 得到最多最可靠的数据, 才能得到理想的结果。Cabin是否可以数据补全, 也需要考虑。
2 确定模型
根据昨天的对比, 模型最好的是RandomForestClassifier
from sklearn.ensemble import RandomForestClassifier
def clean_data(data): # transform text to number for machine leaarning
data['Fare'] = data[