一个在Kaggle建树的例子
今天给大家讲一个怎么运用Kaggle上面的数据建一个简单的决策树模型并且可视化的例子。
首先讲讲怎么注册Kaggle账号。进入以下界面
把各种信息录入,把邮箱登记好。后面就会有封关于激活账户的邮件发到邮箱。这里就需要注意了,一般到了后面的验证码会一直生成不了。
所以就需要用到谷歌浏览器或者翻墙。这里介绍怎么用谷歌浏览器生成验证码。
首先需要下载谷歌访问助手插件,插件下载网址:
http://www.ggfwzs.com
按照该网页指示激活插件:
http://www.ggfwzs.com//ff/chrome/index.html
然后就可以生成验证码,激活kaggle账号成功了。
然后搜索Titanic,下载所需要的数据集。
数据如上图。下载到本地可以开始建立一个简单模型了。
先看数据描述,再对训练集做数据处理:
import pandas as pd
import numpy as np
train=pd.read_csv(‘D:/python /train.csv’)
train.drop([‘Name’,’Ticket’,’Cabin’],axis=1,inplace=True)
把名字,票号,船舱号对建模没作用的变量删除
labels=list(train[‘Embarked’].unique())
train[‘Embarked’]=train[‘Embarked’].apply(lambda x:labels.index(x))
labels2=list(train[‘Sex’].unique())
train[‘Sex’]=train[‘Sex’].apply(lambda x:labels2.index(x))
train[‘Age’]=train[‘Age’].fillna(train[‘Age’].median())
缺失值填补
对测试集一样处理:
test=pd.read_csv(‘D:/python-learn’all’test.csv’)
test.drop([‘Name’,’Ticket’,’Cabin’],axis=1,inplace=True)
labelss=list(test [‘Embarked’].unique())
test [‘Embarked’]= test [‘Embarked’].apply(lambda x:labels.index(x))
Labelss2=list(test [‘Sex’].unique())
test [‘Sex’]= test [‘Sex’].apply(lambda x:labels.index(x))
test [‘Age’]= test [‘Age’].fillna(test [‘Age’].median())
test [‘Fare]= test [‘Fare].fillna(test [‘Fare’].median())
from sklearn import tree
from sklearn.tree import DecisionTreeClassifier
from sklearn import metrics
安装0,19以上版本的sklearn有参数min_impurity_decrease
clf=DecisionTreeClassifier(criterion=’entropy’,min_impurity_decrease=0.01)
算信息熵,防止过拟合,一个节点是否分裂,至少要减少0.01的不纯度
x=train[[‘PassengerId’,’Pclass’,’Sex’,’Age’,’SibSp’,’Parch’,’Fare’,’Embarked’]]
y=train[‘Survived’]
clf.score(x,y)
predicted=clf.predict(xtest)
gender_submission=pd.read_csv(‘D:/python-learn/all/gender_submission.csv’)
xtestla=xtest.merge(gender_submission,on=[‘PassengerId’],how=’left’)
ytest=gender_submission[‘Survived’]
clf.score(xtest,ytest)
代码参考:爱数据的小司机(头条号)
另外注意,在做可视化之前,要先安装graphviz包:链接如下:
https://blog.csdn.net/tina_ttl/article/details/51778551
import pydotplus
import os
dot_data=tree.export_graphviz(clf,feature_names=[‘PassengerId’,’Pclass’,‘Sex’,’Age’,SibSp’,’Parch’,’Fare’,’Embarked’],out_file=f)
把图放在某目录下
graph=pydotplus.graph_from_dot_data(dot_data)
graph.write_pdf(‘D:\python-learn\picture.pdf’)
或者把图直接显示
from IPython.display import Image
Image(graph.create_png())
领取专属 10元无门槛券
私享最新 技术干货