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

意大利设计网站ui界面设计作品模板

意大利设计网站,ui界面设计作品模板,襄阳万家灯火网站建设,wordpress 环境 慢摘要 XGBoost算法#xff08;eXtreme Gradient Boosting#xff09;在目前的Kaggle、数学建模和大数据应用等竞赛中非常流行。本文将会从XGBOOST算法原理、Python实现、敏感性分析和实际应用进行详细说明。 目录 0 绪论 一、材料准备 二、算法原理 三、算法Python实现 3…摘要 XGBoost算法eXtreme Gradient Boosting在目前的Kaggle、数学建模和大数据应用等竞赛中非常流行。本文将会从XGBOOST算法原理、Python实现、敏感性分析和实际应用进行详细说明。 目录 0 绪论 一、材料准备 二、算法原理 三、算法Python实现 3.1 数据加载 3.2 将目标变量的定类数据分类编码 3.3 将数据分为训练数据和测试数据 3.4训练XGBOOST模型 3.5 测试模型 3.6 输出模型的预测混淆矩阵结果矩阵 3.7 输出模型准确率 3.8 绘制混淆矩阵图 3.9 完整实现代码 3.10 结果输出示例 四、 XGBOOST算法的敏感性分析和实际应用 4.1 敏感性分析 4.2 算法应用 五、结论 六、备注 0 绪论 数据挖掘和数学建模等比赛中除了算法的实现还需要对数据进行较为合理的预处理包括缺失值处理、异常值处理、定类数据特征编码和冗余特征的删除等等本文默认读者的数据均已完成数据预处理如有需要后续会将数据预处理的方法也进行发布。 一、材料准备 Python编译器Pycharm社区版或个人版等 训练数据集此处使用2022年数维杯国际大学生数学建模竞赛C题的附件数据为例。 数据处理经过初步数据清洗和相关性分析等操作得到初步的特征并利用决策树进行特征重要性分析完成二次特征降维得到CDRSB_bl, PIB_bl, FBB_bl三个自变量特征DX_bl为分类特征。 二、算法原理 XGBOOST算法基于决策树的集成方法主要采用了Boosting的思想是Gradient Boosting算法的扩展并使用梯度提升技术来提高模型的准确性和泛化能力。 首先将基分类器层层叠加然后每一层在训练的时候对前一层基分类器分错的样本给予更高的权重XGBOOST的目标函数为 (1) 其中为损失函数为正则项用于控制树的复杂度为常数项为新树的预测值它是将树的个数的结果进行求和。 三、算法Python实现 3.1 数据加载 此处导入本文所需数据DataX为自变量数据DataY为目标变量数据DX_bl。 import pandas as pd X pd.DataFrame(pd.read_excel(DataX.xlsx)).values # 输入特征 y pd.DataFrame(pd.read_excel(DataY.xlsx)).values # 目标变量 3.2 将目标变量的定类数据分类编码 此处仅用0-4来代替五类数据因为此处仅做预测并不涉及相关性分析等其他操作所以普通的分类编码就可以。如果需要用来做相关性分析或其他计算型操作建议使用独热编码OneHot- Encoding。 from sklearn.preprocessing import LabelEncoder le LabelEncoder() y le.fit_transform(y) label_mapping {0: AD, 1: CN, 2: EMCI, 3: LMCI, 4: SMC} #此处为了后续输出混淆矩阵时用原始数据输出 3.3 将数据分为训练数据和测试数据 本文将原始样本数据通过随机洗牌并将70%的样本数据作为训练数据30%的样本数据作为测试数据。这是一个较为常见的拆分方法读者可通过不同的拆分测试最佳准确率和F1-score。 from sklearn.model_selection import train_test_split # 将数据分为训练数据和测试数据 X_train, X_test, y_train, y_test train_test_split(X, y, test_size0.3, train_size0.7, random_state42) 3.4训练XGBOOST模型 基于70%的样本数据进行训练建模python有XGBOOST算法的库所以很方便就可以调用。 import xgboost as xgb # 训练XGBoost分类器 model xgb.XGBClassifier() model.fit(X_train, y_train) #xgb.plot_tree(model) 3.5 测试模型 利用另外的30%样本数据进行测试模型准确率、精确率、召回率和F1度量值。 # 使用测试数据预测类别 y_pred model.predict(X_test) 3.6 输出模型的预测混淆矩阵结果矩阵 此处输出混淆矩阵的方法和之前的随机森林、KNN算法都有点不同因为随机森拉算法不需要将定类数据进行分类编码就可以直接调用随机森林算法模型。 from sklearn.metrics import confusion_matrix, classification_report, accuracy_score cm confusion_matrix(y_test, y_pred) # 输出混淆矩阵 for i, true_label in enumerate(label_mapping.values()):row for j, pred_label in enumerate(label_mapping.values()):row f{cm[i, j]} ({pred_label})\tprint(f{row} | {true_label})# 输出混淆矩阵 print(classification_report(y_test, y_pred,target_names[AD, CN, EMCI, LMCI, SMC])) # 输出混淆矩阵 3.7 输出模型准确率 #此处的导库在上一个代码段中已引入 print(Accuracy:) print(accuracy_score(y_test, y_pred)) 3.8 绘制混淆矩阵图 将混淆矩阵结果图绘制并输出可以将这一结果图放在论文中提升论文美感和信服度。 import matplotlib.pyplot as plt import numpy as np label_names [AD, CN, EMCI, LMCI, SMC] cm confusion_matrix(y_test, y_pred)# 绘制混淆矩阵图 fig, ax plt.subplots() im ax.imshow(cm, interpolationnearest, cmapplt.cm.Blues) ax.figure.colorbar(im, axax) ax.set(xticksnp.arange(cm.shape[1]),yticksnp.arange(cm.shape[0]),xticklabelslabel_names, yticklabelslabel_names,titleConfusion matrix,ylabelTrue label,xlabelPredicted label)# 在矩阵图中显示数字标签 thresh cm.max() / 2. for i in range(cm.shape[0]):for j in range(cm.shape[1]):ax.text(j, i, format(cm[i, j], d),hacenter, vacenter,colorwhite if cm[i, j] thresh else black)fig.tight_layout() #plt.show() plt.savefig(XGBoost_Conclusion.png, dpi300) 上面的代码首先计算混淆矩阵然后使用 matplotlib 库中的 imshow 函数将混淆矩阵可视化最后通过 text 函数在混淆矩阵上添加数字并使用 show/savefig 函数显示图像结果输出如图3.1所示。 图3.1 混淆矩阵结果图 3.9 完整实现代码 # 导入需要的库 from sklearn.preprocessing import LabelEncoder import matplotlib.pyplot as plt import pandas as pd import xgboost as xgb from sklearn.model_selection import train_test_split from sklearn.metrics import confusion_matrix, classification_report, accuracy_score import numpy as nple LabelEncoder() label_mapping {0: AD, 1: CN, 2: EMCI, 3: LMCI, 4: SMC} X pd.DataFrame(pd.read_excel(DataX.xlsx)).values # 输入特征 y pd.DataFrame(pd.read_excel(DataY.xlsx)).values # 目标变量 y le.fit_transform(y) # 将数据分为训练数据和测试数据 X_train, X_test, y_train, y_test train_test_split(X, y, test_size0.3, train_size0.7, random_state42) # 训练XGBoost分类器 model xgb.XGBClassifier() model.fit(X_train, y_train) #xgb.plot_tree(model) # 使用测试数据预测类别 y_pred model.predict(X_test) cm confusion_matrix(y_test, y_pred) # 输出混淆矩阵 for i, true_label in enumerate(label_mapping.values()):row for j, pred_label in enumerate(label_mapping.values()):row f{cm[i, j]} ({pred_label})\tprint(f{row} | {true_label})# 输出混淆矩阵 print(classification_report(y_test, y_pred,target_names[AD, CN, EMCI, LMCI, SMC])) # 输出混淆矩阵 print(Accuracy:) print(accuracy_score(y_test, y_pred))# label_names 是分类变量的取值名称列表 label_names [AD, CN, EMCI, LMCI, SMC] cm confusion_matrix(y_test, y_pred)# 绘制混淆矩阵图 fig, ax plt.subplots() im ax.imshow(cm, interpolationnearest, cmapplt.cm.Blues) ax.figure.colorbar(im, axax) ax.set(xticksnp.arange(cm.shape[1]),yticksnp.arange(cm.shape[0]),xticklabelslabel_names, yticklabelslabel_names,titleConfusion matrix,ylabelTrue label,xlabelPredicted label)# 在矩阵图中显示数字标签 thresh cm.max() / 2. for i in range(cm.shape[0]):for j in range(cm.shape[1]):ax.text(j, i, format(cm[i, j], d),hacenter, vacenter,colorwhite if cm[i, j] thresh else black)fig.tight_layout() #plt.show() plt.savefig(XGBoost_Conclusion.png, dpi300) # 上面的代码首先计算混淆矩阵然后使用 matplotlib 库中的 imshow 函数将混淆矩阵可视化最后通过 text 函数在混淆矩阵上添加数字并使用 show/savefig 函数显示图像。 3.10 结果输出示例 图3.2 结果输出示例 四、 XGBOOST算法的敏感性分析和实际应用 4.1 敏感性分析 敏感性分析也叫做稳定性分析可以基于统计学思想通过百次测试记录其准确率、精确率、召回率和F1-Score的数据统计其中位数、平均值、最大值和最小值等数据从而进行对应的敏感性分析。结果表明符合原模型成立则通过了敏感性分析。前面的随机森林算法和KNN算法也是如此。 4.2 算法应用 XGBOOST算法可应用于大数据分析、预测等方面尤其是大数据竞赛Kaggle、阿里天池等竞赛中特别常用也是本人目前认为最好用的一个算法。 五、结论 本文基于XGBOOST算法从数据预处理、算法原理、算法实现、敏感性分析和算法应用都做了具体的分析可适用于大部分机器学习算法初学者。 六、备注 本文为原创文章禁止转载违者必究。如需原始数据可点赞收藏然后私聊作者或在评论区中留下你的邮箱即可获得训练数据一份。
http://www.dnsts.com.cn/news/196124.html

相关文章:

  • 行业网站建设深圳公司申请建设部门网站的报告
  • 织梦响应式网站模板wordpress求助
  • 哪家网站开发网站不想被百度抓取
  • 有网站地图的网站基金会网站开发方案
  • 简述网站开发岗位及职务建设通一年多少钱
  • 广东省交通建设监理检测协会网站自己创业做原公司一样的网站
  • 做网站公司价格多少公司介绍ppt范例内容
  • dedecms网站地图前台路径不修改长沙官网优化技术
  • 微网站有什么用怒江州住房和城乡建设局网站
  • 广州网站建设大公司微信群推广佣金平台
  • ps做网站设计网站开发课题背景
  • 网站备案营业执照石家庄住房和城乡建设部官网
  • 金融投资网站建设阅读网站的研究意义
  • 直播网站的建设5g国产天天5g天天
  • 苏州做企业网站有哪些ios网站开发教程
  • 网站备案有什么用建筑工程网站免费
  • 网站建设 企炬江阴wordpress front-page.php
  • 建设网站最便宜多少钱做加工都在哪个网站推广
  • 哈尔滨网站建设团队网站 div
  • 深圳做网站要多少网站自己怎么做的
  • ip查询网站公众号排名优化
  • wp做图网站wordpress 1.0
  • 网站备案取消国际专线网络怎么申请
  • 华为荣耀官网网站新媒体营销的概念
  • wordpress 昵称留链接百度搜索关键词排名优化
  • 邮票上的化学史网站开发一家只做直购的网站
  • 南岗红旗大街网站建设百度小程序代理
  • 中国建设银行北京分行门户网站公告安卓版傻瓜式编程app软件
  • 苏州微网站建设公司哪家好短视频平台的运营策略有哪些
  • 网站运营管理报告总结访问量大的网站带宽