隱藏的寶藏:使用這些 Python 庫(kù)改變您的機(jī)器學(xué)習(xí)工作流程(python machine庫(kù))
T特別是數(shù)據(jù)科學(xué)領(lǐng)域,擁有大量的工具和庫(kù),使我們能夠從數(shù)據(jù)中提取知識(shí)。然而,在常用的Python庫(kù)(如NumPy,Pandas,Matplotlib,Seaborn,scikit-learn等)的表面之下,存在一個(gè)鮮為人知但功能強(qiáng)大的庫(kù)的寶庫(kù),它們可以為您的機(jī)器學(xué)習(xí)工作流程提供顯著的推動(dòng)力。
有哪些常見的機(jī)器學(xué)習(xí)庫(kù)?
機(jī)器學(xué)習(xí)項(xiàng)目主要由NumPy,Pandas,Matplotlib,Seaborn和Scikit-Learn等庫(kù)支持。NumPy具有強(qiáng)大的數(shù)組操作能力,對(duì)于數(shù)值計(jì)算是必不可少的。Pandas 通過其 DataFrame 結(jié)構(gòu)簡(jiǎn)化了數(shù)據(jù)處理和分析。為了創(chuàng)建引人入勝的數(shù)據(jù)可視化表示,Matplotlib和Seaborn是不可或缺的資源。Scikit-Learn為各種機(jī)器學(xué)習(xí)任務(wù)(如聚類,回歸和分類)提供了一個(gè)全面的工具包。當(dāng)共同利用這些資源時(shí),數(shù)據(jù)科學(xué)家能夠有效地審查、評(píng)估和建模數(shù)據(jù)。
低調(diào)機(jī)器學(xué)習(xí)庫(kù)
? 熊貓分析
Python 熊貓分析模塊是自動(dòng)進(jìn)行探索性數(shù)據(jù)分析 (EDA) 的強(qiáng)大工具。它會(huì)生成一份廣泛的報(bào)告,其中包含有關(guān)數(shù)據(jù)集的有見地的信息,包括要保留哪些變量以及要?jiǎng)h除哪些變量。
from pandas_profiling import ProfileReportprofile = ProfileReport(df, title='Dataset Report', explorative=True)profile.to_notebook_iframe()
使用時(shí),該庫(kù)提供了對(duì)正在處理的數(shù)據(jù)的幾個(gè)重要見解。其中一些包括:
概述:*本節(jié)概述了數(shù)據(jù)集,包括變量和觀測(cè)值的數(shù)量以及不同類型的變量。*
相關(guān)性 — 本節(jié)使用熱圖來說明數(shù)據(jù)集中變量之間的關(guān)系。它允許在各種相關(guān)圖之間切換,包括皮爾遜的 r、肯德爾的 τ、斯皮爾曼的 ρ 和 Phik (φk)。
警告 — 本節(jié)包含有關(guān)具有大量零、NaN 值和高度基數(shù)分類變量的變量的注意事項(xiàng)。
? 缺失
這個(gè)用于可視化數(shù)據(jù)集中缺失數(shù)據(jù)的驚人工具是Python missingno包。它提供了許多功能來幫助分析師和數(shù)據(jù)科學(xué)家理解其數(shù)據(jù)中缺失值的分布和存在。它提供了一些驚人的可視化效果,例如:
矩陣圖 — 這描繪了數(shù)據(jù)集中 NULL/NAN/缺失值的整個(gè)存在的視覺圖片。
pip install missingnoimport missingno as msnomsno.matrix(df)
條形圖 — 這將創(chuàng)建每個(gè)要素列的值計(jì)數(shù)的條形圖,不包括每個(gè)要素列中的缺失值。
msno.bar(df, color="dodgerblue", sort="ascending", figsize=(8,6), fontsize=8)
熱圖 — 這可用于創(chuàng)建關(guān)聯(lián)熱圖,以識(shí)別和分析列之間的相關(guān)性。
msno.heatmap(df)
登多圖 — 這提供了不同特征之間的相關(guān)性和缺失信息存在的分層表示。
msno.dendrogram(df)
? 皮卡雷特
適用于 Python 的開源低代碼 PyCaret 機(jī)器學(xué)習(xí)模塊嘗試自動(dòng)執(zhí)行評(píng)估和對(duì)比回歸和分類的機(jī)器學(xué)習(xí)算法所涉及的關(guān)鍵過程。它旨在縮短從假設(shè)到見解所需的時(shí)間,因此經(jīng)驗(yàn)豐富的數(shù)據(jù)科學(xué)家和新手都可以從中受益。
許多機(jī)器學(xué)習(xí)項(xiàng)目階段,包括特征工程、模型訓(xùn)練、評(píng)估和數(shù)據(jù)預(yù)處理,都由 PyCaret 自動(dòng)化。此外,它還提供了比較多個(gè)機(jī)器學(xué)習(xí)模型和微調(diào)超參數(shù)的功能。
您可以使用 pip 安裝 PyCaret:
pip install pycaret
要使用 PyCaret 進(jìn)行分類,您可以通過以下方式執(zhí)行此操作:
from pycaret.classification import *clf = setup(data, target='target_column')best = compare_models()
要使用 PyCaret 進(jìn)行回歸,您可以通過以下方式執(zhí)行此操作:
from pycaret.regression import *clf = setup(data, target='target_column')best = compare_models()
? 鐘擺
在 Python 中管理日期和時(shí)間的一個(gè)非常有用的工具是鐘擺包。在處理日期和時(shí)間時(shí),它提供了比 Python 內(nèi)置的日期時(shí)間模塊更可靠、對(duì)開發(fā)人員友好的 API。您可以使用 Pendulum 快速完成日期和時(shí)間的格式化、解析和算術(shù)運(yùn)算等活動(dòng)。它是管理應(yīng)用程序中與時(shí)間相關(guān)的數(shù)據(jù)的有效工具,因?yàn)樗€提供時(shí)區(qū)和持續(xù)時(shí)間計(jì)算等功能。
該庫(kù)的一些關(guān)鍵功能包括:
DateTime 實(shí)例 — 使用 now() 函數(shù)獲取當(dāng)前日期和時(shí)間,或使用 datetime() 函數(shù)獲取 特定日期和時(shí)間,您可以構(gòu)建 DateTime 對(duì)象。使用 local() 函數(shù),您還可以構(gòu)建具有特定時(shí)區(qū)的 DateTime 實(shí)例。
import pendulumdt = pendulum.datetime(2020, 11, 27)print(dt)local = pendulum.local(2020, 11,27)print(local)print(local.timezone.name)
時(shí)區(qū)轉(zhuǎn)換 — 庫(kù)的 in_timezone() 和 convert() 函數(shù)使在多個(gè)時(shí)區(qū)之間切換變得簡(jiǎn)單。
utc_time = pendulum.now('UTC')kolkata_time = utc_time.in_timezone('Asia/Kolkata')print('Current Date Time in Kolkata =', kolkata_time)Sydney_tz = pendulum.timezone('Australia/Sydney')sydney_time = sydney_tz.convert(utc_time)print('Current Date Time in Sydney =', sydney_time)
日期時(shí)間操作 — 可以使用 add() 和 subtract() 函數(shù)調(diào)整日期和時(shí)間 。每個(gè)方法都會(huì)生成一個(gè)新的 DateTime 實(shí)例。
dt = pendulum.parse('1997-11-21T22:00:00', tz = 'Asia/Calcutta')print(dt)dt = pendulum.from_format('2020/11/21', 'YYYY/MM/DD')print(dt)
持續(xù)時(shí)間和周期計(jì)算 — 庫(kù)中的 duration() 函數(shù)允許您生成可在 DateTime 實(shí)例中添加或減去的持續(xù)時(shí)間。 period() 函數(shù)還可用于確定兩個(gè) DateTime 實(shí)例之間的時(shí)間間隔。
time_delta = pendulum.duration(days = 2, hours = 10, years = 2)print(time_delta)print('future date =', pendulum.now() time_delta)start = pendulum.datetime(2021, 1, 1)end = pendulum.datetime(2021, 1, 31)period = pendulum.period(start, end)print(period.days)
結(jié)論
總之,用于機(jī)器學(xué)習(xí)的隱藏 Python 庫(kù)提供了有價(jià)值的工具,可以促進(jìn)您的項(xiàng)目。從高效的時(shí)間管理到增強(qiáng)的數(shù)據(jù)可視化,這些資源擴(kuò)展了您的能力。探索這些隱藏的寶石可以提高工作效率和工作的準(zhǔn)確性。隨著 Python 的發(fā)展,嘗試鮮為人知的庫(kù)是保持領(lǐng)先地位的明智之舉。如果您嘗試過上述任何庫(kù),請(qǐng)告訴我。我很想聽聽你最喜歡的低調(diào)Python ML庫(kù),如果它們不在這篇文章中,那就更多了!在評(píng)論中讓我知道!