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

意大利设计网站用wordpress 扒站

意大利设计网站,用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/189900.html

相关文章:

  • 南通做网站ntwsd网站建设专题
  • 一个人可以备案几个网站iis 新建网站没有文件夹权限
  • 手机建站平台可上传自己视频苍南网站建设
  • 如何建立优秀企业网站青岛北京网站建设公司哪家好
  • 在线做春节网站typecho 转 wordpress
  • 上海平台网站建设公司排名电子工程王牌专业
  • 网站关键词书写步骤一键免费创建论坛网站
  • logofree制作网站动漫制作专业有哪些职业岗位
  • 怎么把网页设置为不信任网站银行crm系统
  • 泉州做网站设计机械加工小作坊如何接单
  • 深圳网站推广排名大型企业网站建设制作
  • 个人兼职网站制作做流量网站要做哪一种
  • 忻州集团网站建设微信小程序是免费的吗
  • 做国内网站花费网站群建设路径
  • 网站建设技术标准默认网站 域名 网站绑定
  • 泰州做网站软件网站建设需要怎样的经营范围
  • 中国空间站完成图免费提供网站建设
  • 58同城做网站被骗搜索引擎营销原理
  • 网站建设售后报价网站建设制作开发 小程序开发定制 软件系统开发
  • 京东网站拼图验证怎么做wordpress 笔记本主题
  • 江苏省宝应城市建设有限公司网站wordpress 时间轴
  • 国内做服装的网站有哪些方面网站开发html5技术
  • 个人导航网站如何赚钱谁有网站推荐一个
  • 中企动力初期做的网站来个网站好人有好报2024
  • 洛阳网站建设启辰网络深圳Ic网站建设
  • 外贸业务怎么利用网站开发客户电商网站网址大全
  • 网站 备案号安徽建设厅网站考勤
  • 淮北专业三合一网站开发产品视频宣传片
  • 常州哪些网站公司做的好比wordpress更好的
  • 网站后台文本编辑器布吉网站设计