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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

【机器学习】机器学习初学者绕不开的 15 个 Scikit-Learn 重要技能!

發(fā)布時間:2025/3/12 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【机器学习】机器学习初学者绕不开的 15 个 Scikit-Learn 重要技能! 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Scikit-Learn 是一個非常棒的 python 庫,用于實現(xiàn)機器學習模型和統(tǒng)計建模。通過它,我們不僅可以實現(xiàn)各種回歸、分類、聚類的機器學習模型,它還提供了降維、特征選擇、特征提取、集成技術和內置數(shù)據(jù)集的功能。

今天我將詳細地介紹一下 Scikit-Learn,相信通過本文你會對它有更深刻的理解與運用,喜歡點贊、收藏、分享。

1、數(shù)據(jù)集

學習算法時,我們都希望有一些數(shù)據(jù)集可以練手。Scikit learn 附帶一些非常棒的數(shù)據(jù)集,如iris數(shù)據(jù)集、房價數(shù)據(jù)集、糖尿病數(shù)據(jù)集等。

這些數(shù)據(jù)集非常容易獲取、同時也易于理解,你可以直接在其上實現(xiàn)ML模型,非常適合初學者。

你可以按如下方式即可獲取:

import?sklearn from?sklearn?import?datasets import?pandas?as?pd dataset?=?datasets.load_iris() df?=?pd.DataFrame(dataset.data,?columns=dataset.feature_names)

同樣,你可以用同樣的方式導入其他數(shù)據(jù)集。

2、數(shù)據(jù)拆分

Sklearn 提供了拆分數(shù)據(jù)集以進行訓練和測試的功能。拆分數(shù)據(jù)集對于預測性能的無偏見評估至關重要,可以定義訓練和測試數(shù)據(jù)集中的數(shù)據(jù)比例。

我們可以按如下方式拆分數(shù)據(jù)集:

from?sklearn.model_selection?import?train_test_split x_train,?x_test,?y_train,?y_test?=?train_test_split(x,?y,?test_size=2,?random_state=4)

在 train_test_split 的幫助下,我們對數(shù)據(jù)集進行了拆分,使得訓練集有 80% 的數(shù)據(jù)和測試集有 20% 的數(shù)據(jù)。

3、線性回歸

當輸出變量為連續(xù)變量且與因變量呈線性關系時,使用監(jiān)督機器學習模型,它可以通過分析前幾個月的銷售數(shù)據(jù)來預測未來幾個月的銷售。

借助sklearn,我們可以輕松實現(xiàn)線性回歸模型,如下所示:

from?sklearn.linear_model?import?LinearRegression from?sklearn.metrics?import?mean_squared_error,?r2_score regression_model?=?LinearRegression() regression_model.fit(x_train,?y_train) y_predicted?=?regression_model.predict(x_test) rmse?=?mean_squared_error(y_test,?y_predicted) r2?=?r2_score(y_test,?y_predicted)

首先 LinerRegression()創(chuàng)建一個線性回歸的對象,然后我們在訓練集上擬合模型。最后,我們在測試數(shù)據(jù)集上預測了模型。"rmse"和"r_score"可用于檢查模型的準確性。

4、邏輯回歸

邏輯回歸也是一種監(jiān)督回歸算法,就像線性回歸一樣。唯一的區(qū)別是輸出變量是分類的。它可用于預測患者是否患有心臟病。

借助 sklearn,我們可以輕松實現(xiàn) Logistic 回歸模型,如下所示:

from?sklearn.linear_model?import?LogisticRegression from?sklearn.metrics?import?confusion_matrix from?sklearn.metrics?import?classification_report logreg?=?LogisticRegression() logreg.fit(x_train,?y_train) y_predicted?=?logreg.predict(x_test) confusion_matrix?=?confusion_matrix(y_test,?y_pred) print(confusion_matrix) print(classification_report(y_test,?y_pred))

混淆矩陣和分類報告用于檢查分類模型的準確性。

5、決策樹

決策樹是一個強大的工具,可用于分類和回歸問題。它由根和節(jié)點組成,根代表分裂的決定,節(jié)點代表輸出變量值。當因變量與自變量不遵循線性關系時,決策樹很有用。

用于分類的決策樹實現(xiàn)

from?sklearn.tree?import?DecisionTreeClassifier from?sklearn.metrics?import?confusion_matrix from?sklearn.tree?import?export_graphviz from?sklearn.externals.six?import?StringIO? from?IPython.display?import?Image? from?pydot?import?graph_from_dot_data dt?=?DecisionTreeClassifier() dt.fit(x_train,?y_train) dot_data?=?StringIO() export_graphviz(dt,?out_file=dot_data,?feature_names=iris.feature_names) (graph,?)?=?graph_from_dot_data(dot_data.getvalue()) y_pred?=?dt.predict(x_test)

我們使用 DecisionTreeClassifier() 對象擬合模型,并使用進一步的代碼來可視化 Python 中的決策樹實現(xiàn)。

6、Bagging

Bagging是一種使用訓練集中的隨機樣本訓練相同類型的多個模型的技術。不同模型的輸入是相互獨立的。

對于前一種情況,可以使用多個決策樹進行預測,而不僅僅是一個被稱為隨機森林的決策樹。

7、Boosting

Boosting 多個模型的訓練方式是,一個模型的輸入取決于前一個模型的輸出。在 Boosting 中,對預測錯誤的數(shù)據(jù)給予更多的優(yōu)先權。

8、隨機森林

隨機森林是一種 bagging 技術,它使用成百上千的決策樹來構建模型,用于分類和回歸問題。比如:貸款申請人分類、識別欺詐活動和預測疾病。

在 python 中實現(xiàn)如下:

from?sklearn.ensemble?import?RandomForestClassifier num_trees?=?100 max_features?=?3 clf?=?RandomForestClassifier(n_estimators=num_trees,?max_features=max_features) clf.fit(x_train,y_train) y_pred=clf.predict(x_test) print("Accuracy:",metrics.accuracy_score(y_test,?y_pred))

9、XGBoost

XGBoost 是一種提升技術,可提供梯度提升決策樹的高性能實現(xiàn)。它可以自行處理丟失的數(shù)據(jù),支持正則化并且通常比其他模型給出更準確的結果。

在 python 中實現(xiàn)如下:

from?xgboost?import?XGBClassifier from?sklearn.metrics?import?mean_squared_error xgb?=?XGBClassifier(colsample_bytree?=?0.3,?learning_rate?=?0.1,max_depth?=?5,?alpha?=?10,?n_estimators?=?10) xgb.fit(x_train,y_train) y_pred=xgb.predict(x_test) rmse?=?np.sqrt(mean_squared_error(y_test,?preds)) print("RMSE:?%f"?%?(rmse))

10、支持向量機(SVM)

SVM是一種監(jiān)督機器學習算法,通過找到最好的超平面來進行分類,它通常被用于許多應用程序,例如人臉檢測、郵件分類等。

在 python 中實現(xiàn)為

from?sklearn?import?svm from?sklearn?import?metrics clf?=?svm.SVC(kernel='linear') clf.fit(X_train,?y_train) y_pred?=?clf.predict(X_test) print("Accuracy:",metrics.accuracy_score(y_test,?y_pred))

11、混淆矩陣

混淆矩陣是用于描述分類模型性能的表格。混淆矩陣以如下4項的幫助下進行分析:

  • 真陽性(TF)

這意味著模型預測為正,實際上為正。

  • 真陰性(TN)

這意味著模型預測為負,實際上為負。

  • 誤報(FP)

這意味著模型預測為正,但實際上為負。

  • 假陰性(FN)

這意味著模型預測為負,但實際上為正。

Python 可以實現(xiàn)

from?sklearn.metrics?import?confusion_matrix confusion_matrix?=?confusion_matrix(y_test,?y_pred) print(confusion_matrix)

12、K-均值聚類

K-Means 聚類是一種用于解決分類問題的無監(jiān)督機器學習算法。無監(jiān)督算法是數(shù)據(jù)集中沒有標簽或輸出變量的算法。

在聚類中,數(shù)據(jù)集根據(jù)特征分成不同的組,稱為集群。k-means 聚類有很多應用,例如市場分割、文檔聚類、圖像分割。

它可以在python中實現(xiàn)為:

from?sklearn.cluster?import?KMeans import?statsmodels.api?as?sm kmeans?=?KMeans(3) means.fit(x) identified_clusters?=?kmeans.fit_predict(x)

13、DBSCAN 聚類

DBSCAN 也是一種無監(jiān)督聚類算法,它根據(jù)數(shù)據(jù)點之間的相似性進行聚類。在 DBSCAN 中,只有當指定半徑的簇中的點數(shù)最少時,才會形成簇。

DBSCAN 的優(yōu)勢在于它對異常值具有魯棒性,即它可以自行處理異常值,這與 k 均值聚類不同。DBSCAN 算法用于創(chuàng)建熱圖、地理空間分析、溫度數(shù)據(jù)中的異常檢測。

它可以實現(xiàn)為

from?sklearn.cluster?import?DBSCAN from?sklearn?import?metrics from?sklearn.preprocessing?import?StandardScaler db?=?DBSCAN(eps=0.3,?min_samples=10).fit(X) core_samples_mask?=?np.zeros_like(db.labels_,?dtype=bool) core_samples_mask[db.core_sample_indices_]?=?True labels?=?db.labels_ n_clusters_?=?len(set(labels))?-?(1?if?-1?in?labels?else?0) print(labels)

14、標準化和規(guī)范化

標準化

標準化是一種縮放技術,我們將屬性的均值設為 0,將標準差設為 1,從而使值以具有單位標準差的均值為中心。它可以做為 X'= (X-μ)/σ

歸一化

歸一化是一種使值的范圍從 0 到 1 的技術,它也稱為最小-最大縮放。歸一化可以通過給定的公式 X= (X -Xmin)/(Xmax-Xmin) 來完成。

from?sklearn.preprocessing?import?StandardScaler from?sklearn.preprocessing?import?MinMaxScaler

Python 提供了 StandardScaler 函數(shù)用于實現(xiàn)標準化,MinMaxScaler 函數(shù)用于規(guī)范化。

15、特征提取

特征提取是從數(shù)據(jù)中提取特征的方法。如果將數(shù)據(jù)轉換為數(shù)字格式,我們只能將數(shù)據(jù)傳遞給機器學習模型。Scikit-Learn 提供了將文本和圖像轉換為數(shù)字的功能。

Bag of Words 和 TF-IDF 是 scikit-learn 提供的自然語言處理中最常用的將單詞轉換為數(shù)字的方法。

概括

這篇文章詳細地介紹了 scikit-learn 的15個最重要的特性以及 python 代碼實現(xiàn)。

參考

https://ml2quantum.com/scikit-learn/

(完)

往期精彩回顧適合初學者入門人工智能的路線及資料下載機器學習及深度學習筆記等資料打印機器學習在線手冊深度學習筆記專輯《統(tǒng)計學習方法》的代碼復現(xiàn)專輯 AI基礎下載黃海廣老師《機器學習課程》視頻課黃海廣老師《機器學習課程》711頁完整版課件

本站qq群955171419,加入微信群請掃碼:

總結

以上是生活随笔為你收集整理的【机器学习】机器学习初学者绕不开的 15 个 Scikit-Learn 重要技能!的全部內容,希望文章能夠幫你解決所遇到的問題。

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