日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【机器学习基础】关于Scikit-Learn,你不一定知道的10件事

發(fā)布時間:2025/3/8 编程问答 12 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【机器学习基础】关于Scikit-Learn,你不一定知道的10件事 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

作者:Rebecca Vickery??編譯:ronghuaiyang

導(dǎo)讀

Scikit-learn中有很多方便的功能,你不一定知道。

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

該項目最初是由David Cournapeau開發(fā)的谷歌Summer of Code項目,并在2010年首次公開發(fā)布。自創(chuàng)建以來,這庫已經(jīng)發(fā)展成為一個豐富的生態(tài)系統(tǒng),用于開發(fā)機(jī)器學(xué)習(xí)模型。

隨著時間的推移,該項目開發(fā)了許多方便的功能,增強(qiáng)了其易用性。在本文中,我將介紹10個你可能不知道的最有用的特性。

1. Scikit-learn 有內(nèi)置的數(shù)據(jù)集

Scikit-learn API有多種內(nèi)置的toy和現(xiàn)實世界數(shù)據(jù)集。只需一行代碼就可以訪問這些函數(shù),如果你正在學(xué)習(xí)或只是想快速嘗試一些新功能,那么它們非常有用。

你還可以使用生成器方便地為回歸make_regression()、聚類make_blobs()以及分類make_classification()生成合成數(shù)據(jù)集。

所有的加載工具都提供了返回已經(jīng)分割成X(特征)和y(目標(biāo))的數(shù)據(jù)的選項,這樣就可以直接使用它們來訓(xùn)練模型。

#?Toy?regression?data?set?loading from?sklearn.datasets?import?load_bostonX,y?=?load_boston(return_X_y?=?True)#?Synthetic?regresion?data?set?loading from?sklearn.datasets?import?make_regressionX,y?=?make_regression(n_samples=10000,?noise=100,?random_state=0)

2. 第三方公開數(shù)據(jù)集獲取也很方便

如果你想通過Scikit-learn直接訪問更多公開可用的數(shù)據(jù)集,有一個方便的函數(shù)可以讓你直接從openml.org網(wǎng)站導(dǎo)入數(shù)據(jù)。這個網(wǎng)站包含超過21,000種不同的數(shù)據(jù)集,用于機(jī)器學(xué)習(xí)項目。

from?sklearn.datasets?import?fetch_openmlX,y?=?fetch_openml("wine",?version=1,?as_frame=True,?return_X_y=True)

3. 有現(xiàn)成的分類器來訓(xùn)練基線模型

在開發(fā)機(jī)器學(xué)習(xí)模型時,明智的做法是首先創(chuàng)建一個基線模型。這個模型本質(zhì)上應(yīng)該是一個“偽”模型,比如總是預(yù)測最經(jīng)常出現(xiàn)的類。這為你的“智能”模型提供了一個基準(zhǔn),這樣你就可以確保它比隨機(jī)結(jié)果表現(xiàn)得更好。

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

from?sklearn.dummy?import?DummyClassifier#?Fit?the?model?on?the?wine?dataset?and?return?the?model?score dummy_clf?=?DummyClassifier(strategy="most_frequent",?random_state=0)dummy_clf.fit(X,?y)dummy_clf.score(X,?y)

4. Scikit-learn 有自己的繪圖 API

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

import?matplotlib.pyplot?as?plt? from?sklearn?import?metrics,?model_selection from?sklearn.ensemble?import?RandomForestClassifier from?sklearn.datasets?import?load_breast_cancerX,y?=?load_breast_cancer(return_X_y?=?True)X_train,?X_test,?y_train,?y_test?=?model_selection.train_test_split(X,?y,?random_state=0) clf?=?RandomForestClassifier(random_state=0) clf.fit(X_train,?y_train)metrics.plot_roc_curve(clf,?X_test,?y_test) plt.show()

5. Scikit-learn 具有內(nèi)置的特征選擇方法

提高模型性能的一種方法是只使用最好的特征集來訓(xùn)練模型,或者去除冗余的特征。這個過程稱為特征選擇。

Scikit-learn有許多函數(shù)來進(jìn)行feature selection。其中一個是SelectPercentile()。該方法根據(jù)所選擇的統(tǒng)計方法選擇表現(xiàn)最好的X百分位特征進(jìn)行評分。

from?sklearn?import?model_selection from?sklearn.ensemble?import?RandomForestClassifier from?sklearn.datasets?import?load_wine from?sklearn.pipeline?import?Pipeline from?sklearn.preprocessing?import?StandardScaler from?sklearn.feature_selection?import?SelectPercentile,?chi2X,y?=?load_wine(return_X_y?=?True)X_trasformed?=?SelectPercentile(chi2,?percentile=60).fit_transform(X,?y)

6. Pipelines 可以讓你把所有的機(jī)器學(xué)習(xí)工作流串到一起

除了為機(jī)器學(xué)習(xí)提供廣泛的算法,Scikit-learn也有一系列的預(yù)處理和數(shù)據(jù)變換的功能。為了便于機(jī)器學(xué)習(xí)工作流的重現(xiàn)性和簡單性,Scikit-learn創(chuàng)建了**pipeline **,它允許你將大量的預(yù)處理步驟與模型訓(xùn)練階段鏈接在一起。

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

from?sklearn?import?model_selection from?sklearn.ensemble?import?RandomForestClassifier from?sklearn.datasets?import?load_breast_cancer from?sklearn.pipeline?import?Pipeline from?sklearn.preprocessing?import?StandardScalerX,y?=?load_breast_cancer(return_X_y?=?True)X_train,?X_test,?y_train,?y_test?=?model_selection.train_test_split(X,?y,?random_state=0)#?Chain?together?scaling?the?variables?with?the?model pipe?=?Pipeline([('scaler',?StandardScaler()),?('rf',?RandomForestClassifier())]) pipe.fit(X_train,?y_train)pipe.score(X_test,?y_test)

7. 使用ColumnTransformer,你可以對不同的特征應(yīng)用不同的預(yù)處理

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

Scikit-learn pipeline中有一個函數(shù)ColumnTransformer,可以讓你非常容易地通過索引或通過指定的列名來指定哪些列應(yīng)用最合適的預(yù)處理。

from?sklearn?import?model_selection from?sklearn.linear_model?import?LinearRegression from?sklearn.datasets?import?fetch_openml from?sklearn.compose?import?ColumnTransformer from?sklearn.pipeline?import?Pipeline from?sklearn.impute?import?SimpleImputer from?sklearn.preprocessing?import?StandardScaler,?OneHotEncoder#?Load?auto93?data?set?which?contains?both?categorical?and?numeric?features X,y?=?fetch_openml("auto93",?version=1,?as_frame=True,?return_X_y=True)#?Create?lists?of?numeric?and?categorical?features?? numeric_features?=?X.select_dtypes(include=['int64',?'float64']).columns categorical_features?=?X.select_dtypes(include=['object']).columnsX_train,?X_test,?y_train,?y_test?=?model_selection.train_test_split(X,?y,?random_state=0)#?Create?a?numeric?and?categorical?transformer?to?perform?preprocessing?steps numeric_transformer?=?Pipeline(steps=[('imputer',?SimpleImputer(strategy='median')),('scaler',?StandardScaler())])categorical_transformer?=?Pipeline(steps=[('imputer',?SimpleImputer(strategy='constant',?fill_value='missing')),('onehot',?OneHotEncoder(handle_unknown='ignore'))])#?Use?the?ColumnTransformer?to?apply?to?the?correct?features preprocessor?=?ColumnTransformer(transformers=[('num',?numeric_transformer,?numeric_features),('cat',?categorical_transformer,?categorical_features)])#?Append?regressor?to?the?preprocessor lr?=?Pipeline(steps=[('preprocessor',?preprocessor),('classifier',?LinearRegression())])#?Fit?the?complete?pipeline lr.fit(X_train,?y_train) print("model?score:?%.3f"?%?lr.score(X_test,?y_test))

8. 你可以簡單的輸出一個HTML來表示你的pipeline

pipeline通常非常復(fù)雜,特別是在處理真實數(shù)據(jù)時。因此,Scikit-learn提供了一個方法來輸出pipeline中步驟的HTML圖,這非常方便。

from?sklearn?import?set_configset_config(display='diagram')???lr

9. 有一個繪圖函數(shù)來可視化決策樹

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

import?matplotlib.pyplot?as?plt? from?sklearn?import?metrics,?model_selection from?sklearn.tree?import?DecisionTreeClassifier,?plot_tree from?sklearn.datasets?import?load_breast_cancerX,y?=?load_breast_cancer(return_X_y?=?True)X_train,?X_test,?y_train,?y_test?=?model_selection.train_test_split(X,?y,?random_state=0) clf?=?DecisionTreeClassifier() clf.fit(X_train,?y_train)plot_tree(clf,?filled=True) plt.show()

10. 有許多第三方的庫可以擴(kuò)展Scikit-learn的功能

許多第三方庫都可以使用Scikit-learn并擴(kuò)展其功能。其中兩個例子包括category-encoders庫,它為分類特征提供了更廣泛的預(yù)處理方法,以及ELI5庫,用于更好的模型可解釋性。

這兩個包也可以直接在Scikit-learn pipeline中使用。

—END—

英文原文:https://towardsdatascience.com/10-things-you-didnt-know-about-scikit-learn-cccc94c50e4f

往期精彩回顧適合初學(xué)者入門人工智能的路線及資料下載機(jī)器學(xué)習(xí)及深度學(xué)習(xí)筆記等資料打印機(jī)器學(xué)習(xí)在線手冊深度學(xué)習(xí)筆記專輯《統(tǒng)計學(xué)習(xí)方法》的代碼復(fù)現(xiàn)專輯 AI基礎(chǔ)下載機(jī)器學(xué)習(xí)的數(shù)學(xué)基礎(chǔ)專輯獲取一折本站知識星球優(yōu)惠券,復(fù)制鏈接直接打開:https://t.zsxq.com/yFQV7am本站qq群1003271085。加入微信群請掃碼進(jìn)群:

總結(jié)

以上是生活随笔為你收集整理的【机器学习基础】关于Scikit-Learn,你不一定知道的10件事的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产欧美精品一区二区色综合 | 人操人爽| 成人h动漫精品一区二区无码 | 精品一区李梓熙捆绑 | 婷婷丁香九月 | 中文字幕a级片 | 黄黄视频在线观看 | av女人的天堂 | 国产专区一区二区 | 国偷自产av一区二区三区麻豆 | 无码精品一区二区三区在线 | 国产成人精品一区二区三区网站观看 | 高清乱码免费网 | av在线亚洲天堂 | 亚洲精品成人片在线观看精品字幕 | 夜夜骚av一区二区三区 | 欧美国产在线看 | 欧美一区高清 | 亚洲av无码国产精品久久 | 国产男女视频在线观看 | 韩国精品一区二区三区 | 欧美日韩一区二区电影 | 成人综合区| 久久久久久久久久久久久女国产乱 | 亚洲国产中文字幕 | 亚洲一区二区三区在线看 | 男人操女人的视频 | av色吧 | 99re6在线精品视频免费播放 | 色图社区| 日b视频免费观看 | 亚洲天堂成人网 | 亚洲aa| 国产又黄又粗又猛又爽 | 麻豆影视在线免费观看 | 欧美黑人精品一区二区 | 久久免费av | av在线天堂 | 天天操天天看 | 精品少妇久久久久久888优播 | 久久久免费看片 | 国产成人综合久久 | 91jk制服白丝超短裙大长腿 | 四虎1515hh.com | 波多野结衣电影免费观看 | 日韩美一区二区三区 | 欧美亚洲精品在线 | 欧美性aaa| 男女免费网站 | 日韩在线视频网址 | 免费av入口 | 欧美综合精品 | 亚洲毛片a | 欧美肉丝袜videos办公室 | 噜噜噜在线| 久草视频国产 | 大奶一区二区 | 高h视频在线观看 | 美女一区二区三区 | 久久在线电影 | 日韩一级精品 | 国产成人精品久久二区二区91 | 日本精品成人 | av色片 | 久久久在线| 网站免费在线观看 | 日本人の夫妇交换 | 国产成年人网站 | 一二三毛片 | 国产女人18毛片水真多18 | 厕拍极品 | 五月婷婷激情五月 | 五月天伊人网 | 日韩精品一二三四区 | 国产 欧美 日韩 | a级片毛片 | 国产又黄又猛视频 | 澳门av在线| 国产有码视频 | 欧美日韩精品一二三区 | 亚洲a v网站 | 日本a级免费 | 操在线视频 | 成年人视频网 | 亚洲第1页 | 欧美三级在线播放 | 无套内谢老熟女 | www.第四色 | 欧美精品成人一区二区在线观看 | 一区国产在线 | 精品综合在线 | 黄色av大片 | 国产深夜福利在线 | 双性懵懂美人被强制调教 | 尹人av| 丰满人妻av一区二区三区 | 日韩欧美成人免费视频 | 中文字幕日产乱码中 | 成人国产av一区二区三区 |