0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Python機(jī)器學(xué)習(xí)庫談Scikit-learn技術(shù)

深度學(xué)習(xí)自然語言處理 ? 來源:NewBeeNLP公眾號 ? 作者:Rebecca Vickery ? 2020-08-27 17:34 ? 次閱讀

Scikit-learn是使用最廣泛的Python機(jī)器學(xué)習(xí)庫之一。它有標(biāo)準(zhǔn)化和簡單的接口,用于數(shù)據(jù)預(yù)處理和模型訓(xùn)練、優(yōu)化以及評估。

這個項(xiàng)目最初是由David Cournapeau 開發(fā)的Google Summer of Code 項(xiàng)目,并于2010年首次公開發(fā)布。自創(chuàng)建以來,該庫已經(jīng)發(fā)展成為一個豐富的生態(tài)系統(tǒng),用于開發(fā)機(jī)器學(xué)習(xí)模型。隨著時間的推移,該項(xiàng)目開發(fā)了許多方便的功能,以增強(qiáng)其易用性。在本文中,我將介紹你可能不知道的10個關(guān)于Scikit-learn最有用的特性。

1. 內(nèi)置數(shù)據(jù)集

Scikit-learn API內(nèi)置了各種toy和real-world數(shù)據(jù)集[1]。這些可以便捷地通過一行代碼訪問,如果你正在學(xué)習(xí)或只是想快速嘗試新功能,這會非常有用。

你還可以使用make_regression()、make_blobs()和make_classification()生成合成數(shù)據(jù)集。所有加載實(shí)用程序都提供了返回已拆分為X(特征)和y(目標(biāo))的數(shù)據(jù)選項(xiàng),以便它們可以直接用于訓(xùn)練模型。

2. 獲取公開數(shù)據(jù)集

如果你想直接通過Scikit-learn訪問更多的公共可用數(shù)據(jù)集,請了解,有一個方便的函數(shù)datasets.fetch_openml,可以讓您直接從openml.org網(wǎng)站[2]獲取數(shù)據(jù)。這個網(wǎng)站包含超過21000個不同的數(shù)據(jù)集,可以用于機(jī)器學(xué)習(xí)項(xiàng)目。

3. 內(nèi)置分類器來訓(xùn)練baseline

在為項(xiàng)目開發(fā)機(jī)器學(xué)習(xí)模型時,首先創(chuàng)建一個baseline模型是非常有必要的。這個模型在本質(zhì)上應(yīng)該是一個“dummy”模型,比如一個總是預(yù)測最頻繁出現(xiàn)的類的模型。這就提供了一個基準(zhǔn),用來對你的“智能”模型進(jìn)行基準(zhǔn)測試,這樣你就可以確保它的性能比隨機(jī)結(jié)果更好。

Scikit learn包括用于分類任務(wù)的DummyClassifier() 和用于基于回歸問題的 DummyRegressor()。

4. 內(nèi)置繪圖api

Scikit learn有一個內(nèi)置的繪圖API,允許你在不導(dǎo)入任何其他庫的情況下可視化模型性能。包括以下繪圖:部分相關(guān)圖、混淆矩陣、精確召回曲線和ROC曲線。

5. 內(nèi)置特征選擇方法

提高模型性能的一種技術(shù)是只使用最好的特征集或通過刪除冗余特征來訓(xùn)練模型。這個過程稱為特征選擇。

Scikit learn有許多函數(shù)來執(zhí)行特征選擇。一個示例為 SelectPercentile(),該方法根據(jù)所選的統(tǒng)計方法選擇性能最好的X百分位特征進(jìn)行評分。

6. 機(jī)器學(xué)習(xí)pipeline

除了為機(jī)器學(xué)習(xí)提供廣泛的算法外,Scikit learn還具有一系列用于「預(yù)處理」「轉(zhuǎn)換數(shù)據(jù)」的功能。為了促進(jìn)機(jī)器學(xué)習(xí)工作流程的再現(xiàn)性和簡單性,Scikit learn創(chuàng)建了管道(pipeline),允許將大量預(yù)處理步驟與模型訓(xùn)練階段鏈接在一起。

管道將工作流中的所有步驟存儲為單個實(shí)體,可以通過「fit」「predict」方法調(diào)用該實(shí)體。在管道對象上調(diào)用fit方法時,預(yù)處理步驟和模型訓(xùn)練將自動執(zhí)行。

7. ColumnTransformer

在許多數(shù)據(jù)集中,你將擁有不同類型的特征,需要應(yīng)用不同的預(yù)處理步驟。例如,可能有分類數(shù)據(jù)和連續(xù)數(shù)據(jù)的混合,你可能希望通過one-hot編碼將分類數(shù)據(jù)轉(zhuǎn)換為數(shù)字,并縮放數(shù)字變量。

Scikit-learn管道有一個名為ColumnTransformer的函數(shù),它允許你通過索引或指定列名來輕松指定要對哪些列應(yīng)用最適當(dāng)?shù)念A(yù)處理。

8. 管道的HTML形式

管道通常會變得非常復(fù)雜,尤其是在處理真實(shí)世界的數(shù)據(jù)時。因此,scikit-learn提供了一種方法來輸出管道中步驟的HTML圖表[3],非常方便。

9. 可視化 樹模型

plot_tree() 函數(shù)允許你創(chuàng)建決策樹模型中的步驟圖。

10. 豐富的第三方擴(kuò)展

許多第三方庫可以更好地擴(kuò)展scikit-learn的特性。舉個栗子,category-encoders庫,它為分類特性提供了更大范圍的預(yù)處理方法,以及ELI5包以實(shí)現(xiàn)更大的模型可解釋性。這兩個包也可以直接在Scikit-learn管道中使用。

本文參考資料

[1]toy和real-world數(shù)據(jù)集: https://scikit-learn.org/stable/datasets/index.html

[2]openml.org網(wǎng)站: https://www.openml.org/home

[3]HTML圖表: https://scikit-learn.org/stable/modules/compose.html#visualizing-composite-estimators

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 機(jī)器學(xué)習(xí)

    關(guān)注

    66

    文章

    8423

    瀏覽量

    132757
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4798

    瀏覽量

    84798

原文標(biāo)題:關(guān)于Scikit-Learn你(也許)不知道的10件事

文章出處:【微信號:zenRRan,微信公眾號:深度學(xué)習(xí)自然語言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    如何使用Python構(gòu)建LSTM神經(jīng)網(wǎng)絡(luò)模型

    : NumPy:用于數(shù)學(xué)運(yùn)算。 TensorFlow:一個開源機(jī)器學(xué)習(xí),Keras是其高級API。 Keras:用于構(gòu)建和訓(xùn)練深度學(xué)習(xí)模型。 你可以使用pip來安裝這些
    的頭像 發(fā)表于 11-13 10:10 ?429次閱讀

    RISC-V如何支持不同的AI和機(jī)器學(xué)習(xí)框架和?

    RISC-V如何支持不同的AI和機(jī)器學(xué)習(xí)框架和?還請壇友們多多指教一下。
    發(fā)表于 10-10 22:24

    【「時間序列與機(jī)器學(xué)習(xí)」閱讀體驗(yàn)】時間序列的信息提取

    個重要環(huán)節(jié),目標(biāo)是從給定的時間序列數(shù)據(jù)中提取出有用的信息和特征,以支持后續(xù)的分析和預(yù)測任務(wù)。 特征工程(Feature Engineering)是將數(shù)據(jù)轉(zhuǎn)換為更好地表示潛在問題的特征,從而提高機(jī)器學(xué)習(xí)
    發(fā)表于 08-17 21:12

    【《時間序列與機(jī)器學(xué)習(xí)》閱讀體驗(yàn)】+ 時間序列的信息提取

    之前對《時間序列與機(jī)器學(xué)習(xí)》一書進(jìn)行了整體瀏覽,并且非常輕松愉快的完成了第一章的學(xué)習(xí),今天開始學(xué)習(xí)第二章“時間序列的信息提取”。 先粗略的翻閱第二章,內(nèi)容復(fù)雜,充斥了大量的定義、推導(dǎo)計
    發(fā)表于 08-14 18:00

    pytorch和python的關(guān)系是什么

    在當(dāng)今的人工智能領(lǐng)域,Python已經(jīng)成為了最受歡迎的編程語言之一。Python的易學(xué)易用、豐富的和框架以及強(qiáng)大的社區(qū)支持,使其成為了數(shù)據(jù)科學(xué)、機(jī)器
    的頭像 發(fā)表于 08-01 15:27 ?2055次閱讀

    Python在AI中的應(yīng)用實(shí)例

    Python在人工智能(AI)領(lǐng)域的應(yīng)用極為廣泛且深入,從基礎(chǔ)的數(shù)據(jù)處理、模型訓(xùn)練到高級的應(yīng)用部署,Python都扮演著至關(guān)重要的角色。以下將詳細(xì)探討Python在AI中的幾個關(guān)鍵應(yīng)用實(shí)例,包括
    的頭像 發(fā)表于 07-19 17:16 ?1162次閱讀

    Python自動訓(xùn)練人工神經(jīng)網(wǎng)絡(luò)

    人工神經(jīng)網(wǎng)絡(luò)(ANN)是機(jī)器學(xué)習(xí)中一種重要的模型,它模仿了人腦神經(jīng)元的工作方式,通過多層節(jié)點(diǎn)(神經(jīng)元)之間的連接和權(quán)重調(diào)整來學(xué)習(xí)和解決問題。Python由于其強(qiáng)大的
    的頭像 發(fā)表于 07-19 11:54 ?374次閱讀

    AI訓(xùn)練的基本步驟

    AI(人工智能)訓(xùn)練是一個復(fù)雜且系統(tǒng)的過程,它涵蓋了從數(shù)據(jù)收集到模型部署的多個關(guān)鍵步驟。以下是對AI訓(xùn)練過程的詳細(xì)闡述,包括每個步驟的具體內(nèi)容,并附有相關(guān)代碼示例(以Pythonscikit-learn為例)。
    的頭像 發(fā)表于 07-17 16:57 ?2209次閱讀

    opencv-python和opencv一樣嗎

    不一樣。OpenCV(Open Source Computer Vision Library)是一個開源的計算機(jī)視覺和機(jī)器學(xué)習(xí)軟件,它提供了大量的圖像和視頻處理功能。OpenCV-Pytho
    的頭像 發(fā)表于 07-16 10:38 ?1257次閱讀

    DongshanPI-AICT全志V853開發(fā)板搭建YOLOV5-V6.0環(huán)境

    # onnx-simplifier>=0.3.6# ONNX simplifier # scikit-learn==0.19.2# CoreML quantization
    發(fā)表于 07-12 09:59

    深度學(xué)習(xí)常用的Python

    深度學(xué)習(xí)作為人工智能的一個重要分支,通過模擬人類大腦中的神經(jīng)網(wǎng)絡(luò)來解決復(fù)雜問題。Python作為一種流行的編程語言,憑借其簡潔的語法和豐富的支持,成為了深度學(xué)習(xí)研究和應(yīng)用的首選工具。
    的頭像 發(fā)表于 07-03 16:04 ?666次閱讀

    如何使用Python進(jìn)行神經(jīng)網(wǎng)絡(luò)編程

    神經(jīng)網(wǎng)絡(luò)簡介 神經(jīng)網(wǎng)絡(luò)是一種受人腦啟發(fā)的機(jī)器學(xué)習(xí)模型,由大量的節(jié)點(diǎn)(或稱為“神經(jīng)元”)組成,這些節(jié)點(diǎn)在網(wǎng)絡(luò)中相互連接。每個節(jié)點(diǎn)可以接收輸入,對輸入進(jìn)行加權(quán)求和,然后通過一個激活函數(shù)產(chǎn)生輸出
    的頭像 發(fā)表于 07-02 09:58 ?421次閱讀

    ESP32下如何加自定義Python

    我看官方有提供Micropython的bin文件,但我想根據(jù)自己外設(shè)擴(kuò)充一下Python,這個應(yīng)該從哪里入手? 之前做過RTT系統(tǒng)的python擴(kuò)充,RTT有提供Micropyth
    發(fā)表于 06-18 06:27

    大牛如何學(xué)習(xí)機(jī)器視覺?

    國內(nèi)外機(jī)器視覺發(fā)展的不同。我本人認(rèn)為,只有先搞清了兩邊的不一樣,才便于說清如何下手學(xué)習(xí)。國外機(jī)器視覺發(fā)展到今天,已經(jīng)從“一包到底”式的工作程序,發(fā)展到了細(xì)致分工的階段了。
    發(fā)表于 01-15 11:02 ?461次閱讀
    大牛<b class='flag-5'>談</b>如何<b class='flag-5'>學(xué)習(xí)機(jī)器</b>視覺?

    如何使用Python進(jìn)行圖像識別的自動學(xué)習(xí)自動訓(xùn)練?

    如何使用Python進(jìn)行圖像識別的自動學(xué)習(xí)自動訓(xùn)練? 使用Python進(jìn)行圖像識別的自動學(xué)習(xí)和自動訓(xùn)練需要掌握一些重要的概念和技術(shù)。在本文中
    的頭像 發(fā)表于 01-12 16:06 ?609次閱讀