当前位置: 首页 > news >正文

滨湖区建设局官方网站wordpress无版权主题

滨湖区建设局官方网站,wordpress无版权主题,做个人网站要注意什么,软件开发专业课程有哪些文章发布于公号【数智物语】 #xff08;ID#xff1a;decision_engine#xff09;#xff0c;关注公号不错过每一篇干货。 转自 | 法纳斯特#xff08;公众号ID:walker398#xff09; 作者 | 小F 决策树呈树形结构#xff0c;是一种基本的回归和分类方法。 决策树模型的…   文章发布于公号【数智物语】 IDdecision_engine关注公号不错过每一篇干货。       转自 | 法纳斯特公众号ID:walker398 作者 | 小F   决策树呈树形结构是一种基本的回归和分类方法。   决策树模型的优点在于可读性强、分类速度快。   下面通过从「译学馆」搬运的两个视频来简单了解下决策树。       最后来实战一波建立一个简单的决策树模型。   01决策树算法   本次主要涉及两类决策树Quinlan系列决策树和CART决策树。   前者涉及的算法包括ID3算法、C4.5算法及C5.0算法后者则是CART算法。   前者一系列算法的步骤总体可以概括为建树和剪树。   在建树步骤中首先选择最有解释力度的变量接着对每个变量选择最优的分割点进行剪树。   剪树去掉决策树中噪音或异常数据在损失一定预测精度的情况下能够控制决策树的复杂度提高其泛化能力。   在剪树步骤中分为前剪枝和后剪枝。   前剪枝用于控制树的生成规模常用方法有控制决策树最大深度、控制树中父结点和子结点的最少样本量或比例。   后剪枝用于删除没有意义的分组常用方法有计算结点中目标变量预测精度或误差、综合考虑误差与复杂度进行剪树。   此外在ID3算法中使用信息增益挑选最有解释力度的变量。   其中信息增益为信息熵减去条件熵得到增益越大则变量的影响越大。   C4.5算法则是使用信息增益率作为变量筛选的指标。   CART算法可用于分类或数值预测使用基尼系数(gini)作为选择最优分割变量的指标。   02Python实现   对一份汽车违约贷款数据集进行读取数据、数据清洗。数据来源于《python数据科学技术详解与商业实践》一书   import osimport pydotplusimport numpy as npimport pandas as pdimport sklearn.tree as treeimport matplotlib.pyplot as pltfrom IPython.display import Imageimport sklearn.metrics as metricsfrom sklearn.tree import DecisionTreeClassifierfrom sklearn.model_selection import train_test_split, ParameterGrid, GridSearchCV# 消除pandas输出省略号情况pd.set_option(display.max_columns, None)# 设置显示宽度为1000,这样就不会在IDE中换行了pd.set_option(display.width, 1000)# 读取数据,skipinitialspace:忽略分隔符后的空白accepts  pd.read_csv(accepts.csv, skipinitialspaceTrue)# dropna:对缺失的数据进行删除accepts  accepts.dropna(axis0, howany)# 因变量,是否违约target  accepts[bad_ind]# 自变量data  accepts.ix[:, bankruptcy_ind:used_ind]# 业务处理,loan_amt:贷款金额,tot_income:月均收入data[lti_temp]  data[loan_amt] / data[tot_income]data[lti_temp]  data[lti_temp].map(lambda x: 10 if x  10 else x)# 删除贷款金额列del data[loan_amt]# 替换曾经破产标识列data[bankruptcy_ind]  data[bankruptcy_ind].replace({N: 0, Y: 1})   接下来使用scikit-learn将数据集划分为训练集和测试集。   # 使用scikit-learn将数据集划分为训练集和测试集train_data, test_data, train_target, test_target  train_test_split(data, target, test_size0.2, train_size0.8, random_state1234)   初始化一个决策树模型使用训练集进行训练。   采用基尼系数作为树的生长依据树的最大深度为3每一类标签的权重一样。   # 初始化一个决策树模型clf  DecisionTreeClassifier(criteriongini, max_depth3, class_weightNone, random_state1234)# 输出决策树模型信息print(clf.fit(train_data, train_target))   输出的模型信息如下。     对生成的决策树模型进行评估。   # 输出决策树模型的决策类评估指标print(metrics.classification_report(test_target, clf.predict(test_data)))# 对不同的因变量进行权重设置clf.set_params(**{class_weight: {0: 1, 1: 3}})clf.fit(train_data, train_target)# 输出决策树模型的决策类评估指标print(metrics.classification_report(test_target, clf.predict(test_data)))# 输出决策树模型的变量重要性排序print(list(zip(data.columns, clf.feature_importances_)))   输出如下。     可以看出对因变量标签进行权重设置后模型对违约用户的f1-score(精确率和召回率的调和平均数)提高了为0.46。   违约用户被识别的灵敏度也从0.24提高到了0.46。   此外决策树模型的变量重要性排序为「FICO打分」、「信用卡授权额度」、「贷款金额/建议售价*100」。   通过安装graphviz和相应的插件便能实现决策树的可视化输出具体安装过程不细说。   # 设置graphviz路径os.environ[PATH]  os.pathsep  C:/Program Files (x86)/Graphviz2.38/bin/# 决策树的可视化dot_data  tree.export_graphviz(clf, out_fileNone, feature_namesdata.columns, class_names[0, 1], filledTrue)graph  pydotplus.graph_from_dot_data(dot_data)Image(graph.create_png())# 将决策树模型输出为图片graph.write_png(rpang.png)# 将决策树模型输出为PDFgraph.write_pdf(tree.pdf)   可视化结果如下。     可以看见决策树根节点以fico_score 683.5为分割标准。   全体样本的基尼系数为0.483在3284个样本中被预测变量为0的有2671个为1的有1839个。   使用scikit-learn提供的参数搜索进行调优(GridSearchCV)。   # 设置树的最大深度max_depth  [None, ]# 设置树的最大叶节点数max_leaf_nodes  np.arange(5, 10, 1)# 设置树的类标签权重class_weight  [{0: 1, 1: 2}, {0: 1, 1: 3}]# 设置参数网格param_grid  {max_depth: max_depth,              max_leaf_nodes: max_leaf_nodes,              class_weight: class_weight}# 对参数组合进行建模和效果验证clf_cv  GridSearchCV(estimatorclf,                      param_gridparam_grid,                      cv5,                      scoringroc_auc)# 输出网格搜索的决策树模型信息print(clf_cv.fit(train_data, train_target))   输出网格搜索的决策树模型信息。     使用得到的“最优”模型对测试集进行评估。   # 输出优化后的决策树模型的决策类评估指标print(metrics.classification_report(test_target, clf_cv.predict(test_data)))# 输出优化后的决策树模型的参数组合print(clf_cv.best_params_)   输出结果。     计算模型在不同阈值下的灵敏度和特异度指标绘制ROC曲线。   # 使用模型进行预测train_est  clf_cv.predict(train_data)train_est_p  clf_cv.predict_proba(train_data)[:, 1]test_est  clf_cv.predict(test_data)test_est_p  clf_cv.predict_proba(test_data)[:, 1]# 绘制ROC曲线fpr_test, tpr_test, th_test  metrics.roc_curve(test_target, test_est_p)fpr_train, tpr_train, th_train  metrics.roc_curve(train_target, train_est_p)plt.figure(figsize[3, 3])plt.plot(fpr_test, tpr_test, b--)plt.plot(fpr_train, tpr_train, r-)plt.title(ROC curve)plt.show()# 计算AUC值print(metrics.roc_auc_score(test_target, test_est_p))   ROC曲线图如下其中训练集的ROC曲线(实线)与测试集的ROC曲线(虚线)很接近说明模型没有过拟合。     模型的ROC曲线下面积为0.7358模型效果一般。   推荐阅读       星标我每天多一点智慧   转载于:https://www.cnblogs.com/shuzhiwuyu/p/10716968.html
http://www.pierceye.com/news/852876/

相关文章:

  • 娄底网站制作重庆专题片制作
  • 网站建设佰金手指科杰十七织梦淘客网站
  • 财务系统seo西安
  • 如何做好网站建设的关键重点网站地图那么建设
  • 打开山东城市建设职业学院网站自己网站做优化的有权利卖么
  • 境外电商网站建设sem推广优化
  • 五站合一自建网站制作网站用什么软件有哪些
  • 查法人信息的网站开发公司一季度汇报
  • 国外的购物网站有哪些安徽省住房和城乡建设厅官方网站
  • 网站策划需要什么能力网页游戏平台软件
  • phpmysql网站开发网络结构
  • 微官网和移动网站区别论坛网站建设多少钱
  • 怎么做公司网站优化凡科h5登录入口
  • 做电影网站如何推广方案房产网络平台
  • 站长工具 seo查询python爬数据做网站
  • 网站 底部医院网站建设的要求
  • asp网站静态化seo关键词排名优化软件怎么选
  • wordpress apache版本北京seo招聘
  • 南京玄武网站建设信息服务公司的经营范围有哪些
  • 旅游网站建设与翻译wordpress 显示作者
  • 网站建设与维护报告总结国家外汇管理局网站怎么做报告
  • 南沙区网站建设网站开发人员薪酬
  • 设计外贸英文网站简述网站开发的流程
  • 电商网站设计是干什么的如何建设cpa影视网站
  • wordpress设置阅读全文什么是seo搜索引擎优化
  • 网站名重复网站建设的经验之谈
  • 网站优化软件排名器有含义的公司名
  • 像wordpress一样的网站吗老徐蜂了网站策划书
  • ps做网站首页效果特效wordpress无法修改密码
  • 蚌埠网站设计一句话宣传自己的产品