from sklearn.model_selection import train_test_split train_x, test_x, train_y, test_y = train_test_split(feature_matrix, labels, random_state= 0 ) import xgboost as xgb dtrain=xgb.DMatrix(train_x,label=train_y) dtest=xgb.DMatrix(test_x) params={ 'booster' : 'gbtree' , 'objective' : 'binary:logistic' , 'eval_metric' : 'auc' , 'max_depth' : 4 , 'lambda' : 10 , 'subsample' : 0.75 , 'colsample_bytree' : 0.75 , 'min_child_weight' : 2 , 'eta' : 0.025 , 'seed' : 0 , 'nthread' : 8 , 'silent' : 1 } watchlist = [(dtrain, 'train' )] bst=xgb.train(params,dtrain,num_boost_round= 100 ,evals=watchlist) y_pred=bst.predict(dtest) y_pred_binary = (ypred >= 0.5 )* 1 from sklearn import metrics print 'AUC: %.4f' % metrics.roc_auc_score(test_y,y_pred) print 'ACC: %.4f' % metrics.accuracy_score(test_y,y_pred_binary) print 'Recall: %.4f' % metrics.recall_score(test_y,y_pred_binary) print 'F1-score: %.4f' %metrics.f1_score(test_y,y_pred_binary) print 'Precesion: %.4f' %metrics.precision_score(test_y,y_pred_binary) metrics.confusion_matrix(test_y,y_pred_binary) #省略……from sklearn.model_selection import train_test_splittrain_x, test_x, train_y, test_y = train_test_split(feature_matrix, labels, random_state=0)import xgboost as xgbdtrain=xgb.DMatrix(train... import numpy as np import pickle from sklearn.model_select ion import KFold, train_test_split, GridSearchCV from sklearn.metrics import confus ion _matrix, mean_squared_error # 混淆矩阵 ,均方误差 from sklearn.datasets import load_iris, load_digit. from sklearn.metrics import classificat ion _report from sklearn.metrics import confus ion _matrix def fast_hist(label_pred, label_true, num_classes): mask = (label_true >= 0) & (label_true < num_classes) hist = np.binco
关于语义分割评价指标和 混淆矩阵 的基本知识和代码这篇博客讲得很详细,我这里只是详解一下 混淆矩阵 计算 的代码。 # 计算 混淆矩阵 def _fast_hist(label_true, label_pred, n_class): mask = (label_true >= 0) & (label_true < n_class) hist = np.bincount(
混淆矩阵 (Confus ion Matrix) 在机器学习领域, 混淆矩阵 (Confus ion Matrix),又称为可能性矩阵或错误矩阵。 混淆矩阵 是可视化工具,特别用于监督学习,在无监督学习一般叫做匹配矩阵。在图像精度评价中,主要用于比较分类结果和实际测得值,可以把分类结果的精度显示在一个 混淆矩阵 里面。 混淆矩阵 的结构一般如下图表示的方法。 混淆矩阵 要表达的含义: 混淆矩阵 的每一列代表了预测...
本文旨在使用 XGBoost 、随机森林、KNN、逻辑回归、SVM 和决策树解决分类问题,内容较长,建议收藏、关注、点赞。 假设你受雇于帮助一家信用卡公司检测潜在的欺诈案件,你的工作是确保客户不会因未购买的商品而被收取费用。给你一个包含人与人之间交易的数据集,他们是欺诈与否的信息,并要求你区分它们。我们的最终目的是通过构建分类模型来对欺诈交易进行分类区分来解决上述情况。 李宏毅《机器学习》国语课程(2022)来了 有人把吴恩达老师的机器学习和深度学习做成了中文版 上瘾了,最近又
在机器学习中经常会用到 混淆矩阵 (confus ion matrix),不了解的同学请参考这篇博文: ML01 机器学习后利用 混淆矩阵 Confus ion matrix 进行结果分析 本文参考:使用python绘制 混淆矩阵 (confus ion _matrix) 首先import一些必要的库: from sklearn.metrics import confus ion _matrix # 生成...
import pandas as pd from sklearn import metrics from sklearn.model_select ion import train_test_split import xgboost as xgb import matplotlib.pyplot as plt import openpyxl # 导入数据集 df = pd.read_csv("/Users/mengzihan/Desktop/正式有血糖聚类前.csv") data=df.iloc[:,:35] target=df.iloc[:,-1] # 切分训练集和测试集 train_x, test_x, train_y, test_y = train_test_split(data,target,test_size=0.2,random_state=7) # xgboost 模型初始化设置 dtrain=xgb.DMatrix(train_x,label=train_y) dtest=xgb.DMatrix(test_x) watchlist = [(dtrain,'train')] # booster: params={'booster':'gbtree', 'objective': 'binary:logistic', 'eval_metric': ' auc ', 'max_depth':12, 'lambda':10, 'subsample':0.75, 'colsample_bytree':0.75, 'min_child_weight':2, 'eta': 0.025, 'seed':0, 'nthread':8, 'gamma':0.15, 'learning_rate' : 0.01} # 建模与预测:50棵树 bst=xgb.train(params,dtrain,num_boost_round=50,evals=watchlist) ypred=bst.predict(dtest) # 设置阈值、评价指标 y_pred = (ypred >= 0.5)*1 print ('Pre ces ion : %.4f' %metrics.precis ion _score(test_y,y_pred)) print (' Recall : %.4f' % metrics. recall _score(test_y,y_pred)) print (' F1 -score: %.4f' %metrics. f1 _score(test_y,y_pred)) print (' Acc uracy: %.4f' % metrics. acc uracy_score(test_y,y_pred)) print (' AUC : %.4f' % metrics.roc_ auc _score(test_y,ypred)) ypred = bst.predict(dtest) print("测试集每个样本的得分\n",ypred) ypred_leaf = bst.predict(dtest, pred_leaf=True) print("测试集每棵树所属的节点数\n",ypred_leaf) ypred_contribs = bst.predict(dtest, pred_contribs=True) print("特征的重要性\n",ypred_contribs ) xgb.plot_importance(bst,height=0.8,title='影响糖尿病的重要特征', ylabel='特征') plt.rc('font', family='Arial Unicode MS', size=14) plt.show()
这段代码是使用 XGBoost 进行二分类任务的建模和预测,并输出了一些评价指标和特征重要性。下面是对代码的解释: 1. 导入必要的库:`pandas`用于数据处理,`sklearn`中的`metrics`模块用于评价指标,`train_test_split`用于划分训练集和测试集,` xgboost `用于建模,`matplotlib.pyplot`用于画图,`openpyxl`用于读取Excel文件。 2. 读取数据集:使用`pd.read_csv`读取CSV格式的数据集文件,并分别将特征和目标变量提取出来。 3. 划分训练集和测试集:使用`train_test_split`函数将数据集划分为训练集和测试集,其中`test_size=0.2`表示测试集占比为20%,`random_state=7`表示设置随机种子以保证可重复性。 4. 初始化 xgboost 模型设置:创建`DMatrix`对象,将训练集特征矩阵和目标变量转换为 xgboost 专用的数据格式。设置模型参数和超参数,例如使用GBtree作为基学习器、使用二分类逻辑回归作为目标函数、评价指标为 AUC 等。 5. 建模与预测:使用`xgb.train`函数训练 xgboost 模型,设定迭代次数为50,并在训练过程中输出训练集的性能指标。然后对测试集进行预测,得到预测概率值`ypred`。 6. 设置阈值、 计算 评价指标:将预测概率值转换为二分类的预测结果,并 计算 准确率、召回率、 F1 -score、精确度和 AUC 等评价指标,并输出结果。 7. 输出测试集每个样本的得分:输出测试集每个样本的预测得分。 8. 输出测试集每棵树所属的节点数:输出测试集每棵树所属的节点数。 9. 输出特征的重要性:输出特征的重要性,可以使用`xgb.plot_importance`函数绘制特征重要性图。 最后,通过`plt.show()`函数显示绘制的特征重要性图。
weixin_40079262: 这样还会报NoneType 错误。 建议下载evaluate下所有文件,参考https://blog.csdn.net/hxhabcd123/article/details/135874088?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-135874088-blog-132036058.235%5Ev43%5Epc_blog_bottom_relevance_base8&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-135874088-blog-132036058.235%5Ev43%5Epc_blog_bottom_relevance_base8