python數(shù)據(jù)挖掘使用Evidently創(chuàng)建機(jī)器學(xué)習(xí)模型儀表板
解釋機(jī)器學(xué)習(xí)模型是一個(gè)困難的過(guò)程,因?yàn)橥ǔ4蠖鄶?shù)模型都是一個(gè)黑匣子,我們不知道模型內(nèi)部發(fā)生了什么。創(chuàng)建不同類(lèi)型的可視化有助于理解模型是如何執(zhí)行的,但是很少有庫(kù)可以用來(lái)解釋模型是如何工作的。
Evidently 是一個(gè)開(kāi)源 Python 庫(kù),用于創(chuàng)建交互式可視化報(bào)告、儀表板和 JSON 配置文件,有助于在驗(yàn)證和預(yù)測(cè)期間分析機(jī)器學(xué)習(xí)模型。它可以創(chuàng)建 6 種不同類(lèi)型的報(bào)告,這些報(bào)告與數(shù)據(jù)漂移、分類(lèi)或回歸的模型性能等有關(guān)。
讓我們開(kāi)始吧
1、安裝包
使用 pip 軟件包管理器安裝,運(yùn)行
$ pip install evidently
該工具允許在 Jupyter notebook 中以及作為單獨(dú)的HTML文件構(gòu)建交互式報(bào)告。如果你只想將交互式報(bào)告生成為HTML文件或?qū)С鰹镴SON配置文件,則安裝現(xiàn)已完成。
為了能夠在 Jupyter notebook 中構(gòu)建交互式報(bào)告,我們使用Jupyter nbextension。如果想在 Jupyter notebook 中創(chuàng)建報(bào)告,那么在安裝之后,您應(yīng)該在 terminal 中運(yùn)行以下兩個(gè)命令。
要安裝 jupyter Nbextion,請(qǐng)運(yùn)行:
$ jupyter nbextension install --sys-prefix --symlink --overwrite --py evidently
運(yùn)行
jupyter nbextension enable evidently --py --sys-prefix
有一點(diǎn)需要注意:安裝后單次運(yùn)行就足夠了。無(wú)需每次都重復(fù)最后兩個(gè)命令。
2、導(dǎo)入所需的庫(kù)
在這一步中,我們將導(dǎo)入創(chuàng)建ML模型所需的庫(kù)。我們還將導(dǎo)入用于創(chuàng)建用于分析模型性能的儀表板的庫(kù)。此外,我們將導(dǎo)入 pandas 以加載數(shù)據(jù)集。
import pandas as pd import numpy as np from sklearn.ensemble import RandomForestRegressor from evidently.dashboard import Dashboard from evidently.tabs import RegressionPerformanceTab from evidently.model_profile import Profile from evidently.profile_sections import RegressionPerformanceProfileSection
3、加載數(shù)據(jù)集
在這一步中,我們將加載數(shù)據(jù)并將其分離為參考數(shù)據(jù)和預(yù)測(cè)數(shù)據(jù)。
raw_data = pd.read_csv('/content/day.csv', header = 0, sep = ',', parse_dates=['dteday']) ref_data = raw_data[:120] prod_data = raw_data[120:150] ref_data.head()
4、創(chuàng)建模型
在這一步中,我們將創(chuàng)建機(jī)器學(xué)習(xí)模型,對(duì)于這個(gè)特定的數(shù)據(jù)集,我們將使用隨機(jī)森林回歸模型。
target = 'cnt' datetime = 'dteday' numerical_features = ['mnth', 'temp', 'atemp', 'hum', 'windspeed'] categorical_features = ['season', 'holiday', 'weekday', 'workingday', 'weathersit',] features = numerical_features + categorical_features model = RandomForestRegressor(random_state = 0) model.fit(ref_data[features], ref_data[target]) ref_data['prediction'] = model.predict(ref_data[features]) prod_data['prediction'] = model.predict(prod_data[features])
5、創(chuàng)建儀表板
在這一步中,我們將創(chuàng)建儀表板來(lái)解釋模型性能并分析模型的不同屬性,如 MAE、MAPE、誤差分布等。
column_mapping = {} column_mapping['target'] = target column_mapping['prediction'] = 'prediction' column_mapping['datetime'] = datetime column_mapping['numerical_features'] = numerical_features column_mapping['categorical_features'] = categorical_features dashboard = Dashboard(tabs=[RegressionPerformanceTab]) dashboard .calculate(ref_data, prod_data, column_mapping=column_mapping) dashboard.save('bike_sharing_demand_model_perfomance.html')
在上圖中,可以清楚地看到顯示模型性能的報(bào)告,可以使用上述代碼下載并創(chuàng)建的 HTML 報(bào)告。
6、可用報(bào)告類(lèi)型
1)數(shù)據(jù)漂移
檢測(cè)特征分布的變化
2)數(shù)值目標(biāo)漂移
檢測(cè)數(shù)值目標(biāo)和特征行為的變化。
3)分類(lèi)目標(biāo)漂移
檢測(cè)分類(lèi)目標(biāo)和特征行為的變化
4)回歸模型性能
分析回歸模型的性能和模型誤差
5)分類(lèi)模型性能
分析分類(lèi)模型的性能和錯(cuò)誤。適用于二元和多類(lèi)模型
6)概率分類(lèi)模型性能
分析概率分類(lèi)模型的性能、模型校準(zhǔn)的質(zhì)量和模型錯(cuò)誤。適用于二元和多類(lèi)模型。
以上就是python數(shù)據(jù)挖掘使用Evidently創(chuàng)建機(jī)器學(xué)習(xí)模型儀表板的詳細(xì)內(nèi)容,更多關(guān)于Evidently創(chuàng)建機(jī)器學(xué)習(xí)模型儀表板的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python實(shí)戰(zhàn)之MNIST手寫(xiě)數(shù)字識(shí)別詳解
MNIST數(shù)據(jù)集是機(jī)器學(xué)習(xí)領(lǐng)域中非常經(jīng)典的一個(gè)數(shù)據(jù)集,由60000個(gè)訓(xùn)練樣本和10000個(gè)測(cè)試樣本組成,每個(gè)樣本都是一張28 * 28像素的灰度手寫(xiě)數(shù)字圖片。本文主要介紹了通過(guò) MNIST實(shí)現(xiàn)手寫(xiě)數(shù)字識(shí)別,需要的可以參考一下2022-01-01Python3實(shí)現(xiàn)將文件樹(shù)中所有文件和子目錄歸檔到tar壓縮文件的方法
這篇文章主要介紹了Python3實(shí)現(xiàn)將文件樹(shù)中所有文件和子目錄歸檔到tar壓縮文件的方法,涉及Python3使用tarfile模塊實(shí)現(xiàn)tar壓縮文件的技巧,需要的朋友可以參考下2015-05-05Python之tkinter列表框Listbox與滾動(dòng)條Scrollbar解讀
這篇文章主要介紹了Python之tkinter列表框Listbox與滾動(dòng)條Scrollbar解讀,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05Python3 使用map()批量的轉(zhuǎn)換數(shù)據(jù)類(lèi)型,如str轉(zhuǎn)float的實(shí)現(xiàn)
今天小編就為大家分享一篇Python3 使用map()批量的轉(zhuǎn)換數(shù)據(jù)類(lèi)型,如str轉(zhuǎn)float的實(shí)現(xiàn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-11-11Python 抓取數(shù)據(jù)存儲(chǔ)到Redis中的操作
這篇文章主要介紹了Python 抓取數(shù)據(jù)存儲(chǔ)到Redis中的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-07-07Python實(shí)現(xiàn)將目錄中TXT合并成一個(gè)大TXT文件的方法
這篇文章主要介紹了Python實(shí)現(xiàn)將目錄中TXT合并成一個(gè)大TXT文件的方法,涉及Python針對(duì)目錄下文本文件的遍歷、讀取及寫(xiě)入等技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07PyCharm插件開(kāi)發(fā)實(shí)踐之PyGetterAndSetter詳解
這篇文章主要介紹了PyCharm插件開(kāi)發(fā)實(shí)踐-PyGetterAndSetter,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-10-10Python 實(shí)現(xiàn)反轉(zhuǎn)整數(shù)的案例(很容易懂的那種)
這篇文章主要介紹了Python 實(shí)現(xiàn)反轉(zhuǎn)整數(shù)的案例(很容易懂的那種),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-03-03