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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

golang 升级到新版本_Scikit-learn新版本发布,一行代码秒升级

發布時間:2024/7/19 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 golang 升级到新版本_Scikit-learn新版本发布,一行代码秒升级 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

十三 發自 凹非寺
量子位 報道 | 公眾號 QbitAI

Scikit-learn,這個強大的Python包,一直深受機器學習玩家青睞。

而近日,scikit-learn 官方發布了 0.22 最終版本。

此次的更新修復了許多舊版本的bug,同時發布了一些新功能。

安裝最新版本 scikit-learn 也很簡單。

使用 pip :

pip install --upgrade scikit-learn

使用 conda :

conda install scikit-learn

接下來,就是此次更新的十大亮點。

全新 plotting API

對于創建可視化任務,scikit-learn 推出了一個全新 plotting API。

這個新API可以快速調整圖形的視覺效果,不再需要進行重新計算。

也可以在同一個圖形中添加不同的圖表。

例如:

from sklearn.model_selection import train_test_splitfrom sklearn.svm import SVCfrom sklearn.metrics import plot_roc_curvefrom sklearn.ensemble import RandomForestClassifierfrom sklearn.datasets import make_classificationimport matplotlib.pyplot as pltX, y = make_classification(random_state=0)X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=42)svc = SVC(random_state=42)svc.fit(X_train, y_train)rfc = RandomForestClassifier(random_state=42)rfc.fit(X_train, y_train)svc_disp = plot_roc_curve(svc, X_test, y_test)rfc_disp = plot_roc_curve(rfc, X_test, y_test, ax=svc_disp.ax_)rfc_disp.figure_.suptitle("ROC curve comparison")plt.show()

StackingClassifier和StackingRegressor

StackingClassifier 和 StackingRegressor 允許用戶擁有一個具有最終分類器/回歸器的估計器堆棧(estimator of stack)。

堆棧泛化(stacked generalization)是將各個估計器的輸出疊加起來,然后使用分類器來計算最終的預測。

基礎估計器擬合在完整的X( full X )上,而最終估計器則使用基于cross_val_predict的基礎估計器的交叉驗證預測進行訓練。

例如:

from sklearn.datasets import load_irisfrom sklearn.svm import LinearSVCfrom sklearn.linear_model import LogisticRegressionfrom sklearn.preprocessing import StandardScalerfrom sklearn.pipeline import make_pipelinefrom sklearn.ensemble import StackingClassifierfrom sklearn.model_selection import train_test_splitX, y = load_iris(return_X_y=True)estimators = [ ('rf', RandomForestClassifier(n_estimators=10, random_state=42)), ('svr', make_pipeline(StandardScaler(), LinearSVC(random_state=42)))]clf = StackingClassifier( estimators=estimators, final_estimator=LogisticRegression())X_train, X_test, y_train, y_test = train_test_split( X, y, stratify=y, random_state=42)clf.fit(X_train, y_train).score(X_test, y_test)

輸出:0.9473684210526315。

基于排列(permutation)的特征重要性

inspection.permutation_importance可以用來估計每個特征的重要性,對于任何擬合的估算器:

from sklearn.ensemble import RandomForestClassifierfrom sklearn.inspection import permutation_importanceX, y = make_classification(random_state=0, n_features=5, n_informative=3)rf = RandomForestClassifier(random_state=0).fit(X, y)result = permutation_importance(rf, X, y, n_repeats=10, random_state=0, n_jobs=-1)fig, ax = plt.subplots()sorted_idx = result.importances_mean.argsort()ax.boxplot(result.importances[sorted_idx].T, vert=False, labels=range(X.shape[1]))ax.set_title("Permutation Importance of each feature")ax.set_ylabel("Features")fig.tight_layout()plt.show()

對梯度提升提供缺失值的本地支持

ensemble.HistGradientBoostingClassifier 和 ensemble.HistGradientBoostingRegressor 現在對缺失值(NaNs)具有本機支持。這意味著在訓練或預測時無需插補數據。

from sklearn.experimental import enable_hist_gradient_boosting # noqafrom sklearn.ensemble import HistGradientBoostingClassifierimport numpy as npX = np.array([0, 1, 2, np.nan]).reshape(-1, 1)y = [0, 0, 1, 1]gbdt = HistGradientBoostingClassifier(min_samples_leaf=1).fit(X, y)print(gbdt.predict(X))

輸出:[0 0 1 1]。

預計算的稀疏近鄰圖

現在,大多數基于最近鄰圖的估算都接受預先計算的稀疏圖作為輸入,以將同一圖重用于多個估算量擬合。

要在pipeline中使用這個特性,可以使用 memory 參數,以及neighbors.KNeighborsTransformer和neighbors.RadiusNeighborsTransformer中的一個。

預計算還可以由自定義的估算器來執行。

from tempfile import TemporaryDirectoryfrom sklearn.neighbors import KNeighborsTransformerfrom sklearn.manifold import Isomapfrom sklearn.pipeline import make_pipelineX, y = make_classification(random_state=0)with TemporaryDirectory(prefix="sklearn_cache_") as tmpdir: estimator = make_pipeline( KNeighborsTransformer(n_neighbors=10, mode='distance'), Isomap(n_neighbors=10, metric='precomputed'), memory=tmpdir) estimator.fit(X) # We can decrease the number of neighbors and the graph will not be # recomputed. estimator.set_params(isomap__n_neighbors=5) estimator.fit(X)

基于Imputation的KNN

現在,scikit_learn 支持使用k近鄰來填充缺失值。

from sklearn.impute import KNNImputerX = [[1, 2, np.nan], [3, 4, 3], [np.nan, 6, 5], [8, 8, 7]]imputer = KNNImputer(n_neighbors=2)print(imputer.fit_transform(X))

輸出
[[1. 2. 4. ]
[3. 4. 3. ]
[5.5 6. 5. ]
[8. 8. 7. ]]

樹剪枝

現在,在建立一個樹之后,可以剪枝大部分基于樹的估算器。

X, y = make_classification(random_state=0)rf = RandomForestClassifier(random_state=0, ccp_alpha=0).fit(X, y)print("Average number of nodes without pruning {:.1f}".format( np.mean([e.tree_.node_count for e in rf.estimators_])))rf = RandomForestClassifier(random_state=0, ccp_alpha=0.05).fit(X, y)print("Average number of nodes with pruning {:.1f}".format( np.mean([e.tree_.node_count for e in rf.estimators_])))

輸出
Average number of nodes without pruning 22.3
Average number of nodes with pruning 6.4

從OpenML檢索dataframe

datasets.fetch_openml現在可以返回pandas dataframe,從而正確處理具有異構數據的數據集:

from sklearn.datasets import fetch_openmltitanic = fetch_openml('titanic', version=1, as_frame=True)print(titanic.data.head()[['pclass', 'embarked']])

輸出
pclass embarked
0 1.0 S
1 1.0 S
2 1.0 S
3 1.0 S
4 1.0 S

檢查一個估算器的scikit-learn兼容性

開發人員可以使用check_estimator檢查其scikit-learn兼容估算器的兼容性。

現在,scikit-learn 提供了pytest特定的裝飾器(decorator),該裝飾器允許pytest獨立運行所有檢查并報告失敗的檢查。

from sklearn.linear_model import LogisticRegressionfrom sklearn.tree import DecisionTreeRegressorfrom sklearn.utils.estimator_checks import parametrize_with_checks@parametrize_with_checks([LogisticRegression, DecisionTreeRegressor])def test_sklearn_compatible_estimator(estimator, check): check(estimator)

ROC AUC現在支持多類別分類

roc_auc_score 函數也可用于多類別分類。

目前支持兩種平均策略:

one-vs-one算法計算兩兩配對的ROC AUC分數的平均值;
one-vs-rest算法計算每個類別相對于所有其他類別的ROC AUC分數的平均值。

在這兩種情況下,模型都是根據樣本屬于特定類別的概率估計來計算多類別ROC AUC分數。

from sklearn.datasets import make_classificationfrom sklearn.svm import SVCfrom sklearn.metrics import roc_auc_scoreX, y = make_classification(n_classes=4, n_informative=16)clf = SVC(decision_function_shape='ovo', probability=True).fit(X, y)print(roc_auc_score(y, clf.predict_proba(X), multi_class='ovo'))

輸出:0.9957333333333332

傳送門

Twitter:
https://twitter.com/scikit_learn/status/1201847227561529346

博客:
https://scikit-learn.org/stable/auto_examples/release_highlights/plot_release_highlights_0_22_0.html#new-plotting-api

使用指南:
https://scikit-learn.org/stable/modules/model_evaluation.html#roc-metrics

— 完 —

量子位 QbitAI · 頭條號簽約

關注我們,第一時間獲知前沿科技動態

總結

以上是生活随笔為你收集整理的golang 升级到新版本_Scikit-learn新版本发布,一行代码秒升级的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 大胸美女吻戏 | 久草新视频| 亚洲成人影音 | 自拍亚洲欧美 | 国产成人精品在线播放 | 男女插插网站 | 中文字幕中出 | 欧美性天天| 免费成人在线电影 | 女人看黄色网 | 天天草天天操 | 黄色在线观看网址 | 国产乱淫av麻豆国产 | 欧美精品一区二区三区久久久 | 国产精品久久久久影院 | 日韩乱淫| 日本天堂在线观看 | 男人和女人在床的app | 另一种灿烂生活 | 日本一本在线视频 | 国产精品自拍在线观看 | 黄色片视频免费观看 | 老妇裸体性激交老太视频 | 欧美精品成人一区二区三区四区 | 久久午夜片| 夜夜免费视频 | 激情文学88 | 91精品欧美一区二区三区 | 4hu最新网址| 成人免费网站在线观看 | 69堂免费视频 | 狠狠伊人 | 台湾佬久久 | 国产一区激情 | 色网综合 | 高跟鞋调教—视频|vk | 精品亚洲aⅴ无码一区二区三区 | 久久国内精品 | 国产1区2区3区中文字幕 | 乱熟女高潮一区二区在线 | 中文字幕亚洲欧美日韩在线不卡 | 日本精品视频在线播放 | 国产精品不卡一区二区三区 | 性网址| 最新av网站在线观看 | 2018天天弄| 日韩网站在线播放 | 国产原创在线播放 | 一级激情片 | 成熟的女同志hd | 波多野结衣不卡 | 欧美在线观看视频一区 | 美女扒开尿口给男人捅 | 亚洲v天堂 | 日韩成人av一区二区 | 久草福利视频 | 色婷婷av国产精品 | 377人体粉嫩噜噜噜 www.av黄色 | 免费看欧美一级片 | 久久亚洲欧洲 | 99久久久久 | 午夜影视剧场 | 小泽玛利亚一区二区三区 | 男女视频在线免费观看 | 成人久久免费 | 最近免费中文字幕大全免费版视频 | 午夜看片| 色婷婷亚洲一区二区三区 | 国产黄色小视频在线观看 | av自拍一区 | 国产乱码av| 五月激情婷婷在线 | 国产精品自产拍高潮在线观看 | 欧美日一本| 美国美女群体交乱 | 欧美两根一起进3p做受视频 | 九九99精品视频 | 成人涩涩软件 | 99热国产在线 | 黑人干亚洲 | 日本在线免费观看视频 | 成人免费看片载 | 亚洲av成人精品午夜一区二区 | 性做久久久久久久免费看 | av大片免费在线观看 | 日本黄色特级片 | 无码人妻aⅴ一区二区三区有奶水 | 午夜一区二区三区免费 | 亚洲制服在线观看 | 国产亚洲一区二区不卡 | 欧美伦理片 | 亚洲美女屁股眼交 | 日韩一区欧美二区 | 成人动漫h在线观看 | 操操操爽爽爽 | 超碰伊人网 | 国产成人手机视频 | 欧美三级中文字幕 | 免费黄色激情视频 |