(11-3-7 )检测以太坊区块链中的非法账户:模型评估

这篇具有很好参考价值的文章主要介绍了(11-3-7 )检测以太坊区块链中的非法账户:模型评估。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

11.3.7  模型评估

模型评估(Model Evaluation)是在机器学习和统计建模中的重要步骤,用于评估构建的模型的性能和有效性。它涉及使用不同的指标和技巧来量化模型在处理数据和进行预测时的表现,并帮助确定模型是否足够好以满足特定任务的需求。

1对模型进行全面评估,包括在训练集和测试集上的性能评估,并绘制了精确度-召回率曲线,以更全面地了解模型的性能和潜在问题。具体实现代码如下所示。

def model_fit_evaluation2(model_model, params, X_train, y_train, X_val, y_val, algo=None, sampling=None):
    start_time = time.time()
    rcv = RandomizedSearchCV(model_model, params, cv=10, scoring='roc_auc', n_jobs=-1, verbose=1, random_state=23)
    rcv.fit(X_train, y_train)
    
    print('\n')
    print('best estimator : ', rcv.best_estimator_)
    print('best parameters: ', rcv.best_params_)
    print('best score: ', rcv.best_score_)
    print('\n')
    y_train_pred= (rcv.best_estimator_).predict(X_train)
    y_test_prob1=(rcv.best_estimator_).predict_proba(X_test)[:,1]
    y_test_pred= (rcv.best_estimator_).predict(X_test)
    print("--- %s seconds ---" % (time.time() - start_time))
    draw_roc(y_train, y_train_pred)
    print("Training set metrics")
    print ('AUC for the {} Model {} sampling technique'.format(algo,sampling), metrics.roc_auc_score( y_train, y_train_pred))
    model_metrics(rcv,y_train, y_train_pred)
    print('*'*50)
    print("Test set metrics")
    draw_roc(y_test, y_test_pred)
    print ('AUC for the {} Model {} sampling technique'.format(algo,sampling), metrics.roc_auc_score(y_test, y_test_pred))
    model_metrics(rcv,y_test, y_test_pred)
    precision, recall, thresholds = precision_recall_curve(y_test, y_test_prob1)
    plt.fill_between(recall, precision, step='post', alpha=0.2,
                 color='#F59B00')
    plt.ylabel("Precision")
    plt.xlabel("Recall")
    plt.title("Test Precision-Recall curve");
    
model_fit_evaluation2(model_GB, params_gb, X_train_ro, y_train_ro, X_test, y_test, 'GradientBoosting', 'oversampling')

在上述代码中,使用测试数据集 X_test 和 y_test 来评估模型的性能,而不仅仅是训练和验证数据集。具体来说,上述代码的功能包括:

  1. 使用 RandomizedSearchCV 对指定的机器学习模型(model_model)进行超参数调优。超参数在 params 中定义,并通过交叉验证来选择最佳的超参数组合。
  2. 输出最佳模型的估计器(best_estimator_)、最佳超参数(best_params_)和最佳得分(best_score_)。
  3. 使用最佳模型对训练数据集 X_train 进行预测,得到预测结果 y_train_pred。
  4. 使用最佳模型对测试数据集 X_test 进行预测,得到预测结果 y_test_pred 和类别概率预测 y_test_prob1。
  5. 绘制训练集和测试集的 ROC 曲线,并计算 AUC(ROC 曲线下面积)以评估模型性能。
  6. 输出训练集和测试集的性能指标,包括 AUC、准确率、召回率、精确度、F1 分数、混淆矩阵等。
  7. 绘制测试集的精确度-召回率曲线(Precision-Recall Curve)。

执行后输出使用交叉验证(10折交叉验证)选择最佳超参数的过程以及相应的结果:

Fitting 10 folds for each of 10 candidates, totalling 100 fits


best estimator :  GradientBoostingClassifier(learning_rate=0.5, n_estimators=50)
best parameters:  {'n_estimators': 50, 'learning_rate': 0.5}
best score:  0.9993991240384741


--- 72.88349509239197 seconds ---

上面的输出包括了训练集和测试集上的性能指标以及精确度-召回率曲线。总的来说,这个模型在训练集和测试集上都表现出色,但需要注意过拟合的可能性,因为训练集上的性能远远高于测试集。

另外上面的代码执行后还会绘制“精确度-召回率”曲线(Precision-Recall curve),如图11-8所示。这是测试集上模型性能的可视化指标之一,这个曲线用于可视化模型在不同召回率和精确度下的表现,有助于更全面地评估模型的性能。

(11-3-7 )检测以太坊区块链中的非法账户:模型评估,金融大模型,机器学习,python,人工智能,神经网络,深度学习

11-8  “精确度-召回率”曲线

2)在下面代码中,每一行代码都执行了不同模型的评估,使用不同的采样技术(oversampling或SMOTE)以及不同的超参数进行配置。

model_fit_evaluation2(model_GB, params_gb, X_train_smote, y_train_smote, X_test, y_test, 'GradientBoosting', 'smote')


model_fit_evaluation2(model_LGBM, params_lgbm, X_train_ro, y_train_ro, X_test, y_test, 'LightGradientBoosting', 'Over smapling')


model_fit_evaluation2(model_LGBM, params_lgbm, X_train_smote, y_train_smote, X_test, y_test, 'LightGradientBoosting', 'smote')


model_fit_evaluation2(model_cat, params_cat, X_train_ro, y_train_ro, X_test, y_test, 'Cat Boosting', 'Over sampling')


model_fit_evaluation2(model_cat, params_cat, X_train_smote, y_train_smote, X_test, y_test, 'Cat Boosting', 'SMOTE')

上面一共5行代码,具体说明如下:

  1. 第1行:评估了Gradient Boosting模型,采样技术为SMOTE,输出了模型的性能指标以及Precision-Recall曲线。
  2. 第2行:评估了Light Gradient Boosting模型,采样技术为Over sampling,输出了模型的性能指标以及Precision-Recall曲线。
  3. 第3行:评估了Light Gradient Boosting模型,采样技术为SMOTE,输出了模型的性能指标以及Precision-Recall曲线。
  4. 第4行: 评估了Cat Boosting模型,采样技术为Over sampling,输出了模型的性能指标以及Precision-Recall曲线。
  5. 第5行:评估了Cat Boosting模型,采样技术为SMOTE,输出了模型的性能指标以及Precision-Recall曲线。

上面的每个评估都采用了相同的评估步骤,包括超参数调优、性能指标计算和绘制Precision-Recall曲线。评估的目的是确定每个模型在不同采样技术下的性能表现,以及它们是否适用于测试数据集。例如第5行代码输出下面的内容结果:

AUC for the Cat Boosting Model SMOTE sampling technique 0.9802106230517987
Accuracy    :  0.9827411167512691
Sensitivity :  0.9758454106280193
Specificity :  0.9845758354755784
Precision   :  0.9439252336448598
Recall      :  0.9758454106280193
F1_score: 0.9596199524940617
[[766  12]
 [  5 202]]

上面输出的是Cat Boosting模型在SMOTE采样技术下的性能评估结果,其中AUC(Area Under the Curve)为0.9802,这是ROC曲线下的面积,用于衡量模型的分类性能。AUC越接近1,模型性能越好。接下来是混淆矩阵中的各项指标:

  1. 准确度(Accuracy)为0.9827,表示模型正确分类的样本比例为98.27%。
  2. 敏感度(Sensitivity)为0.9758,也称为真正例率(True Positive Rate),表示模型正确预测正例的比例。
  3. 特异度(Specificity)为0.9846,也称为真负例率(True Negative Rate),表示模型正确预测负例的比例。
  4. 精确度(Precision)为0.9439,表示模型在预测为正例的样本中,实际为正例的比例。
  5. 召回率(Recall)为0.9758,与敏感度相同,表示模型正确预测正例的比例。
  6. F1分数(F1 Score)为0.9596,综合考虑了精确度和召回率,是一个综合性能指标。

最后,混淆矩阵显示了模型的分类结果。其中,766个样本被正确分类为负例(真负例),202个样本被正确分类为正例(真正例),12个样本被错误分类为正例(假正例),5个样本被错误分类为负例(假负例)。

综合来看,我们的模型在SMOTE采样技术下表现良好,具有较高的准确度、敏感度和特异度,适合应对类别不

另外,上面的5行代码还会为每个评估绘制可视化图,其中包括ROC曲线和Precision-Recall曲线,例如例如第5行代码的绘图如图11-9所示。这些图有助于可视化模型在不同采样技术下的性能表现,以及模型在测试数据集上的性能。这些图有助于更好地理解模型的性能,并进行比较和分析。

(11-3-7 )检测以太坊区块链中的非法账户:模型评估,金融大模型,机器学习,python,人工智能,神经网络,深度学习

11-9  Cat Boosting模型的ROC曲线图

本篇已完结

源码和数据集下载:https://download.csdn.net/download/asd343442/88727898

(11-3-01 )检测以太坊区块链中的非法账户-CSDN博客

(11-3-02)检测以太坊区块链中的非法账户: 数据分析(1)-CSDN博客

(11-3-03)检测以太坊区块链中的非法账户: 数据分析(2)-CSDN博客

(11-3-04 )检测以太坊区块链中的非法账户:Train-Test Split(拆分数据集)-CSDN博客

(11-3-5 )检测以太坊区块链中的非法账户:特征缩放-CSDN博客

(11-3-6 )检测以太坊区块链中的非法账户:构建模型和超参数调优-CSDN博客文章来源地址https://www.toymoban.com/news/detail-785635.html

到了这里,关于(11-3-7 )检测以太坊区块链中的非法账户:模型评估的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 区块链中的:哈希算法

    哈希算法,又称散列算法,它是一个单向函数,可以把任意长度的输入数据转化为固定长度的输出: h=H(x)h=H(x)h=H(x) 例如,对  morning  和  bitcoin  两个输入进行某种哈希运算,得到的结果是固定长度的数字: 我们通常用十六进制表示哈希输出。 因为哈希算法是一个 单向函

    2024年02月06日
    浏览(46)
  • QLearning在区块链中的应用

    非常感谢您的阅读。我将以专业的技术语言撰写这篇深入的技术博客文章。 区块链作为一种分布式账本技术,凭借其去中心化、不可篡改、透明公开等特性,在金融、供应链管理、数字资产交易等领域广受关注和应用。而强化学习算法Q-Learning作为一种有效的智能决策方法,近年

    2024年04月15日
    浏览(43)
  • 科普|区块链中的Merkle Tree

    什么是Merkle Tree? - Merkle Tree也就是Merkle树,中文译名还有梅克尔树或默克尔树,因为这是一棵用哈希值搭建起来的树,树的所有节点都存储了哈希值,所以也叫哈希树,英文名为Hash Tree。默克尔树通常情况下看着是一棵倒置的树型结构,根节点在顶部,分叉向下,叶子节点

    2024年02月02日
    浏览(45)
  • 区块链中的节点是什么意思?

    众所周知,我的好朋友阿强,一个币圈奇才,对所有可以一夜暴富的项目都有着出奇的热忱的一个敢于试错的勇士,今天他又又又又给我推荐了一个项目——美公链。 号称全面涵盖吃喝玩乐购,链上可视化数据消费补贴,消费增值,消费共享,消费股东为一体产业区块链的链

    2023年04月08日
    浏览(48)
  • 区块链中的交易是什么意思

    id:BSN_2021 公众号:BSN研习社 关于区块链,交易是一个绕不开的话题。区块链可以看做一个不断实时同步的分布式账本,在这个账本上,每一个动作都可以算作一笔“交易”。正是一笔笔交易,才构成了账本的全部。 关于交易,有很多基础术语需要我们了解。 交易/Transaction

    2024年02月06日
    浏览(57)
  • 区块链中的货币与现金系统

    摘  要 : 区块链技术是近年来备受关注的一项新兴技术,它以去中心化、不可篡改和透明等特点,为各个领域的应用提供了全新的解决方案。区块链技术的发展不仅对传统金融、物流、能源等行业带来了深刻的变革,同时也推动了数字经济和数字社会的快速发展。在区块链技

    2024年02月04日
    浏览(62)
  • 区块链中的共识机制以及共识算法

    目录 什么是共识 什么是共识机制 共识机制类型 1、基于工作证明(Proof of Work PoW) PoW的特点

    2024年02月11日
    浏览(50)
  • 【区块链时代】如何用Python实现区块链中的区块结构(快速入手01)

    区块结构的详细介绍,容易入手: 【区块链时代】如何理解区块链中共识机制以及在区块链中分叉是如何解决的 结果如下: 在下一篇博客中将重点介绍节点之间通信过程中如何实现各个功能模块。

    2024年02月15日
    浏览(47)
  • 区块链中的 Gas 费是什么?我一定要交么?

    经常使用以太坊等区块链的人,对于 Gas 这个词一定不陌生。那么,Gas 是什么呢? Gas 在英文中是指“燃料、汽油”的意思,在区块链当中,它也的确和“汽油”有着类似的功能。区块链是一个由无数节点共同构成的去中心化网络,在这个网络中,每一个节点都可以看做是一

    2024年02月11日
    浏览(39)
  • 浅析区块链中的数据可用性采样技术(DAS)

    任何一条区块链中,数据可用性都是一个必不可少的关键性内容。在当今区块链主流采用的欺诈证明的乐观系统或有效性证明系统中,都需要“数据可用性”进行验证,确保系统活跃性。 在早期的区块链项目中,用户需要下载整个数据块来确保数据可用性。简答来说,就是用

    2024年02月11日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包