zoukankan      html  css  js  c++  java
  • python机器学习-泰坦尼克号决策树

    案例:泰坦尼克号乘客生存预测

    • 泰坦尼克号数据

    在泰坦尼克号和titanic2数据帧描述泰坦尼克号上的个别乘客的生存状态。这里使用的数据集是由各种研究人员开始的。其中包括许多研究人员创建的旅客名单,由Michael A. Findlay编辑。我们提取的数据集中的特征是票的类别,存活,乘坐班,年龄,登陆,home.dest,房间,票,船和性别。

    1、乘坐班是指乘客班(1,2,3),是社会经济阶层的代表。

    2、其中age数据存在缺失。

     分析

    • 选择我们认为重要的几个特征 ['pclass', 'age', 'sex']
    • 填充缺失值
    • 特征中出现类别符号,需要进行one-hot编码处理(DictVectorizer)
      • x.to_dict(orient="records") 需要将数组特征转换成字典数据
    • 数据集划分
    • 决策树分类预测
    #泰坦尼克号决策树
    def titanic():
        #1.获取数据
        data_titanic=pd.read_csv("titanic.csv")
        #2.获取目标值与特征值
        x=data_titanic[["pclass","age","sex"]]
        y=data_titanic["survived"]
        #3.数据处理
        #1).缺失值处理
        x["age"].fillna(x["age"].mean(),inplace=True)#填补处理dropna()删除缺失值所在的行
        #2).转换为字典
        x=x.to_dict(orient="records")
        #4.划分数据集
        x_train,x_test,y_train,y_test=train_test_split(x,y,random_state=22)
        #5.字典特征抽取
        transfer=DictVectorizer()
        x_train=transfer.fit_transform(x_train)
        x_test=transfer.transform(x_test)
        #6.决策树预估器
        estimator=DecisionTreeClassifier(criterion="entropy")#criterion默认为gini系数,此处选择的为信息增益的熵
        #max_depth:树深的大小,random_state:随机数种子
        estimator.fit(x_train,y_train)
        #7.模型评估
        y_predict=estimator.predict(x_test)
        print("y_predict:
    ",y_predict)
        print("直接对比真实值和预测值:
    ",y_test==y_predict)
        score=estimator.score(x_test,y_test)
        print("准确率为:
    ",score)
        #8.决策树可视化
        export_graphviz(estimator,out_file="titanic_tree.dot",feature_names=transfer.get_feature_names())
        #使用随机森林
        estimator=RandomForestClassifier()
  • 相关阅读:
    根据第三方库spire.pdf使用指定打印机打印pdf文件
    大批量GPS坐标转百度坐标
    maven settings.xml
    linux 权限
    hyper-v 创建ubuntu虚拟机设置静态ip
    mysql 复制
    nginx
    python函数定义
    Mysql索引浅析
    Mysql 数据库锁机制浅析
  • 原文地址:https://www.cnblogs.com/fengchuiguobanxia/p/15432570.html
Copyright © 2011-2022 走看看