sklearn中决策树的API
使用kaggle上数据
数据源
下面是使用sklearn生成决策树的python
import pandas as pd
from sklearn.feature_extraction import DictVectorizer
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier,export_graphviz
def decsion():
"""
决策树对泰坦尼克号存活进行预测
:return: None
"""
#获取数据
titanData = pd.read_csv("./data/Titanic/train.csv")
#处理数据,找出特征值和目标值。
x = titanData[['Pclass','Age','Sex']]
y = titanData['Survived']
#缺失值处理
x['Age'].fillna(x['Age'].mean(),inplace=True)
#分割数据集到训练集、测试集
x_train,x_test,y_train,y_test = train_test_split(x,y,test_size=0.25)
#特征工程 特征-》类别-》one_hot编码
dict = DictVectorizer(sparse=False)
x_train = dict.fit_transform(x_train.to_dict(orient="records"))
print(dict.get_feature_names())
x_test = dict.fit_transform(x_test.to_dict(orient="records"))
print(x_train)
#用决策树进行预测
dec = DecisionTreeClassifier()
dec.fit(x_train,y_train)
#预测准确率
print("预测准确率:",dec.score(x_test,y_test))
#导出决策树的结构:生成dot文件,需要通过第三方软件graphviz装换为png或pdf文件可视化
#export_graphviz(dec,out_file="./tree.dot",feature_names=['Age', 'Pclass', 'Sex=female', 'Sex=male'])
return None
if __name__ == '__main__':
decsion()
导出决策树的结构:生成dot文件,需要通过第三方软件graphviz装换为png或pdf文件可视化
dot文件可视化命令
结果
决策树结构
决策树的优点
简单的理解和解释,数目可视化
需要很少的数据准备,其他技术通常需要数据归一化
决策树的缺点
过拟合
改进方法
减枝算法:cart算法
随机森林
版权声明:本文为qq_37000327原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。