機器學習-人與機器生數據的區分模型測試 - 模型融合與檢驗

模型融合


# 先用普通Pipeline訓練
from sklearn.pipeline import Pipeline#from sklearn2pmml.pipeline import PMMLPipeline
train_pipe = Pipeline([('scaler', StandardScaler()),('ensemble', VotingClassifier(estimators=[('rf', RandomForestClassifier(n_estimators=200, max_depth=10,min_samples_split = 20)), ('xgb', XGBClassifier(max_depth=4, learning_rate=0.1,n_estimators = 200 )),  ('lgb', LGBMClassifier(num_leaves=200,max_depth=5,learning_rate=0.1, reg_alpha=0.1,n_estimators = 200,lambda_l1 =0.1,lambda_l2=2 )),  ('cat', CatBoostClassifier(n_estimators=150, max_depth=10,learning_rate=0.01))], voting='soft'))
])
train_pipe.fit(X_train, y_train)

數據保存與檢驗

import joblib
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn.metrics import (accuracy_score, roc_auc_score, roc_curve, confusion_matrix)

數據保存

# 數據保存
def save_data():pd.DataFrame(X_train).to_csv('X_train.csv', index=False)pd.DataFrame(y_train).to_csv('y_train.csv', index=False)pd.DataFrame(X_temp).to_csv('X_test.csv', index=False)pd.DataFrame(y_temp).to_csv('y_test.csv', index=False)joblib.dump(train_pipe, 'trained_model.pkl')

準確率比對

def compare_accuracy():train_pred = train_pipe.predict(X_train)test_pred = train_pipe.predict(X_temp)train_acc = accuracy_score(y_train, train_pred)test_acc = accuracy_score(y_temp, test_pred)print(f"訓練集準確率: {train_acc:.4f}")print(f"測試集準確率: {test_acc:.4f}")

模型穩定性分析

def stability_analysis():# 交叉驗證穩定性from sklearn.model_selection import cross_val_scorecv_scores = cross_val_score(train_pipe, X_train, y_train, cv=5)print(f"交叉驗證得分: {cv_scores}")print(f"平均交叉驗證得分: {np.mean(cv_scores):.4f}{np.std(cv_scores):.4f})")# 特征重要性分析try:importances = train_pipe.named_steps['ensemble'].feature_importances_plt.figure()plt.bar(range(len(importances)), importances)plt.title('特征重要性')plt.savefig('feature_importance.png')plt.close()except AttributeError:print("當前集成方法不支持特征重要性分析")

最總結果

# 模型預測
y_prob = train_pipe.predict_proba(X_temp)[:, 1]
fpr, tpr, thresholds = roc_curve(y_temp, y_prob)
auc = roc_auc_score(y_temp, y_prob# Lift值計算優化
decile = pd.DataFrame({'prob': y_prob, 'actual': y_temp})
decile['decile'] = pd.qcut(decile['prob'].rank(method='first'), 10, labels=False)
lift = decile.groupby('decile')['actual'].mean() / decile['actual'].mean()# 可視化增強
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(14, 6))# ROC曲線
ax1.plot(fpr, tpr, label=f'AUC={auc:.3f}')
ax1.plot([0, 1], [0, 1], 'k--')
ax1.set_xlabel('假正率')
ax1.set_ylabel('真正率')
ax1.set_title('ROC曲線')
ax1.legend()# Lift曲線
sns.barplot(x=lift.index, y=lift.values, ax=ax2)
ax2.axhline(1, color='red', linestyle='--')
ax2.set_title('Lift值分布')
ax2.set_xlabel('十分位')
ax2.set_ylabel('Lift值')plt.tight_layout()
plt.savefig('model_performance.png', dpi=300, bbox_inches='tight')

結果如下

最后輸出ROC曲線和lift 值
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/81487.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/81487.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/81487.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

怎樣免費開發部署自己的網站?

要免費開發自己的網站,您可以根據自己的技術水平和需求選擇以下兩種主要方式: 零基礎用戶:建議使用如WordPress.com、Weebly、Strikingly等平臺,快速搭建網站。 有一定技術基礎的用戶:可選擇自行開發網站,…

調用百度云API機器翻譯

新建Python文件,叫 text_translator.py 輸入 import requests import jsonAPI_KEY "glYiYVF2dSc7EQ8n78VDRCpa" # 替換為自己的API Key SECRET_KEY "kUlhze8OQZ7xbVRp" # 替換為自己的Secret Keydef main():# 選擇翻譯方向while True:di…

OpenAI與微軟洽談新融資及IPO,Instagram因TikTok流失四成用戶

OpenAI與微軟洽談新融資及IPO 據悉,OpenAI 正與微軟洽談新融資及籌備 IPO,關鍵問題是微軟在 OpenAI 重組后的股權比例。微軟已投資超 130 億美元,雙方修訂 2019 年合同,微軟擬棄部分股權換新技術訪問權。OpenAI 上周放棄了有爭議轉…

git工具使用詳細教程-------命令行和TortoiseGit圖形化

下載 git下載地址:https://git-scm.com/downloads TortoiseGit(圖形化工具)下載地址:https://tortoisegit.org/download/ 認識git結構 工作區:存放代碼的地方 暫存區:臨時存儲,將工作區的代碼…

構建RAG混合開發---PythonAI+JavaEE+Vue.js前端的實踐

7GB顯存如何部署bf16精度的DeepSeek-R1 70B大模型?-CSDN博客 服務容錯治理框架resilience4j&sentinel基礎應用---微服務的限流/熔斷/降級解決方案-CSDN博客 conda管理python環境-CSDN博客 快速搭建對象存儲服務 - Minio,并解決臨時地址暴露ip、短…

【Java ee初階】jvm(3)

一、雙親委派機制(類加載機制中,最經常考到的問題) 類加載的第一個環節中,根據類的全限定類名(包名類名)找到對應的.class文件的過程。 JVM中進行類加載的操作,需要以來內部的模塊“類加載器”…

wps excel將表格輸出pdf時所有列在一張紙上

記錄:wps excel將表格輸出pdf時所有列在一張紙上 1,調整縮放比例,或選擇將所有列打印在一頁 2,將表格的所有鋪滿到這套虛線

分布式微服務系統架構第134集:筆記1運維服務器經驗,高并發,大數據量系統

加群聯系作者vx:xiaoda0423 倉庫地址:https://webvueblog.github.io/JavaPlusDoc/ https://1024bat.cn/ https://github.com/webVueBlog/fastapi_plus https://webvueblog.github.io/JavaPlusDoc/ ? 一、查看端口是否被占用的常用命令 1?? lsof 命令&…

IS-IS 中間系統到中間系統

前言: 中間系統到中間系統IS-IS(Intermediate System to Intermediate System)屬于內部網關協議IGP(Interior Gateway Protocol),用于自治系統內部 IS-IS也是一種鏈路狀態協議,使用最短路徑優先…

前端安全:XSS、CSRF 防御與最佳實踐

引言 隨著互聯網應用的普及,前端安全問題日益凸顯。作為開發者,了解并防范常見的安全威脅至關重要。本文將深入探討兩種最常見的前端安全威脅:跨站腳本攻擊(XSS)和跨站請求偽造(CSRF)&#xff…

uniapp 彈窗封裝(上、下、左、右、中五個方位)

無腦復制即可&#xff01;&#xff01;&#xff01; <template><view><viewv-if"mask"class"tui-drawer-mask":class"{ tui-drawer-mask_show: visible }":style"{ zIndex: maskZIndex }"tap"handleMaskClick&qu…

Axure制作可視化大屏動態滾動列表教程

在可視化大屏設計中&#xff0c;動態滾動列表是一種常見且實用的展示方式&#xff0c;能夠有效地展示大量信息。本文將詳細介紹如何使用Axure制作一個動態滾動的列表展示模塊。 一、準備工作 打開Axure軟件&#xff1a;確保你已經安裝并打開了Axure RP軟件。創建新項目&#x…

零基礎玩轉Apache Superset可視化部署

根據官方Quick Start Guide&#xff0c;你可以按照以下步驟進行部署&#xff1a; 1. 確認環境2. 獲取代碼3. 獲取官方最新代碼4. 啟動服務5. 訪問Superset Web界面6. 接入數據源 前提條件&#xff1a; dockerdocker compose 1. 確認環境 安裝Docker和Docker Compose 確保你…

服務器數據恢復—XFS文件系統分區消失的數據恢復案例

服務器數據恢復環境&故障&#xff1a; 服務器上有一組由raid卡組建的raid5磁盤陣列。上層安裝linux才做系統&#xff0c;采用XFS文件系統&#xff0c;劃分了3個分區。 管理員將服務器的操作系統重裝后&#xff0c;發現服務器上的分區發生了改變&#xff1a;一個分區消失&am…

2025/5/18

繼續研究一下大佬的RAG項目。開始我的碎碎念。 RAG可以分成兩部分&#xff1a;一個是問答&#xff0c;一個是數據處理。 問答是人提問&#xff0c;然后查數據庫&#xff0c;把查的東西用大模型組織成人話&#xff0c;回答人的提問。 數據處理是把當下知識庫里的東西&#xf…

在 Vue 中插入 B 站視頻

前言 在 Vue 項目中&#xff0c;有時我們需要嵌入 B 站視頻來豐富頁面內容&#xff0c;為用戶提供更直觀的信息展示。本文將詳細介紹在 Vue 中插入 B 站視頻的多種方法。 使用<iframe>標簽直接嵌入,<iframe>標簽是一種簡單直接的方式&#xff0c;可將 B 站視頻嵌…

OpenCv高階(八)——攝像頭調用、攝像頭OCR

文章目錄 前言一、攝像頭調用通用方法1、導入必要的庫2、創建攝像頭接口 二、攝像頭OCR1.引入庫2、定義函數&#xff08;1&#xff09;定義顯示opencv顯示函數&#xff08;2&#xff09;保持寬高比的縮放函數&#xff08;3&#xff09;坐標點排序函數&#xff08;4&#xff09;…

特斯拉虛擬電廠:能源互聯網時代的分布式革命

在雙碳目標與能源轉型的雙重驅動下&#xff0c;特斯拉虛擬電廠&#xff08;Virtual Power Plant, VPP&#xff09;通過數字孿生技術與能源系統的深度融合&#xff0c;重構了傳統電力系統的運行范式。本文從系統架構、工程實踐、技術挑戰三個維度&#xff0c;深度解析這一顛覆性…

【漫話機器學習系列】258.拐點(Inflection Point)

拐點&#xff08;Inflection Point&#xff09;詳解&#xff1a;定義、原理與應用 在數學分析與數據建模中&#xff0c;“拐點&#xff08;Inflection Point&#xff09;”是一個非常重要的概念。今天這篇文章&#xff0c;我們將結合圖示&#xff0c;深入理解拐點的定義、數學…

語音識別——聲紋識別

通過將說話人的聲音與數據庫中的記錄聲音進行比對&#xff0c;判斷說話人是否為數據庫白名單中的同一人&#xff0c;從而完成語音驗證。目前&#xff0c;3D-Speaker 聲紋驗證的效果較為出色。 3D-Speaker 是一個開源工具包&#xff0c;可用于單模態和多模態的說話人驗證、說話…