决策树与随机森林

决策树

信息熵

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
决策树的划分依据之一 - 信息增益
在这里插入图片描述
sklearn决策树API
在这里插入图片描述
举例:
在这里插入图片描述
泰坦尼克号乘客生存分类模型:
在这里插入图片描述
决策树的结构 本地保存
在这里插入图片描述
用工具将.dot转换为.png
在这里插入图片描述
命令运行
在这里插入图片描述
优缺点:
在这里插入图片描述

用随机森林改进

集成学习方法

在这里插入图片描述
随机森林概念:
在这里插入图片描述
举例:
在这里插入图片描述
算法说明:
在这里插入图片描述
集成学习API
在这里插入图片描述
随机森林的优点:
在这里插入图片描述
code(包含决策树和随机森林):

def decision():
    '''决策树对泰坦尼克号进行预测生死'''
    # 获取数据
    titan = pd.read_csv("http://biostat.mc.vanderbilt.edu/wiki/pub/Main/DataSets/titanic.txt")
    # 处理数据 获取特征值和目标值
    x = titan[['pclass','age','sex']]
    y = titan['survived']
    print(x) # 特征值
    # 缺失值处理
    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.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))
    # # 导出树的结构
    # export_graphviz(dec,out_file="/Users/guosihan/Desktop/tree.dot",feature_names=['age', 'pclass=1st', 'pclass=2nd', 'pclass=3rd', 'sex=female', 'sex=male'])
    # 随机森林进行预测 (超参数调优)
    rf = RandomForestClassifier()
    param = {"n_estimators":[120,200,300,500,800,1200],"max_depth":[5,8,15,25,30]}
    # 网格搜索交叉验证
    gc = GridSearchCV(rf,param_grid=param,cv=2)
    gc.fit(x_train,y_train)
    print("准确率: ",gc.score(x_test,y_test))
    print("查看选择的参数模型:",gc.best_params_) # 可以选出来5 120
    return None

if __name__ == "__main__":
    # knncls()
    # naviebayes()
    decision()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值