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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

【机器学习】机器学习神器Scikit-Learn保姆级入门教程

發布時間:2025/3/12 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【机器学习】机器学习神器Scikit-Learn保姆级入门教程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

公眾號:尤而小屋
作者:Peter
編輯:Peter

Scikit-learn是一個非常知名的Python機器學習庫,它廣泛地用于統計分析和機器學習建模等數據科學領域。

  • 建模無敵:用戶通過scikit-learn能夠實現各種監督和非監督學習的模型

  • 功能多樣:同時使用sklearn還能夠進行數據的預處理、特征工程、數據集切分、模型評估等工作

  • 數據豐富:內置豐富的數據集,比如:泰坦尼克、鳶尾花等,數據不再愁啦

本篇文章通過簡明快要的方式來介紹scikit-learn的使用,更多詳細內容請參考官網:

  • 內置數據集使用

  • 數據集切分

  • 數據歸一化和標準化

  • 類型編碼

  • 建模6步曲

  • Scikit-learn使用神圖

    下面這張圖是官網提供的,從樣本量的大小開始,分為回歸、分類、聚類、數據降維共4個方面總結了scikit-learn的使用:

    https://scikit-learn.org/stable/tutorial/machine_learning_map/index.html

    安裝

    關于安裝scikit-learn,建議通過使用anaconda來進行安裝,不用擔心各種配置和環境問題。當然也可以直接pip來安裝:

    pip?install?scikit-learn

    數據集生成

    sklearn內置了一些優秀的數據集,比如:Iris數據、房價數據、泰坦尼克數據等。

    import?pandas?as?pd import?numpy?as?npimport?sklearn? from?sklearn?import?datasets??#?導入數據集

    分類數據-iris數據

    #?iris數據 iris?=?datasets.load_iris() type(iris)sklearn.utils.Bunch

    iris數據到底是什么樣子?每個內置的數據都存在很多的信息

    可以將上面的數據生成我們想看到的DataFrame,還可以添加因變量:

    回歸數據-波士頓房價

    我們重點關注的屬性:

    • data

    • target、target_names

    • feature_names

    • filename

    同樣可以生成DataFrame:

    三種方式生成數據

    方式1

    #調用模塊 from?sklearn.datasets?import?load_iris data?=?load_iris()#導入數據和標簽 data_X?=?data.data data_y?=?data.target

    方式2

    from?sklearn?import?datasets loaded_data?=?datasets.load_iris()??#?導入數據集的屬性#導入樣本數據 data_X?=?loaded_data.data #?導入標簽 data_y?=?loaded_data.target

    方式3

    #?直接返回 data_X,?data_y?=?load_iris(return_X_y=True)

    數據集使用匯總

    from?sklearn?import?datasets??#?導入庫boston?=?datasets.load_boston()??#?導入波士頓房價數據 print(boston.keys())??#?查看鍵(屬性)?????['data','target','feature_names','DESCR',?'filename']? print(boston.data.shape,boston.target.shape)??#?查看數據的形狀? print(boston.feature_names)??#?查看有哪些特征? print(boston.DESCR)??#?described?數據集描述信息? print(boston.filename)??#?文件路徑

    數據切分

    #?導入模塊 from?sklearn.model_selection?import?train_test_split #?劃分為訓練集和測試集數據 X_train,?X_test,?y_train,?y_test?=?train_test_split(data_X,?data_y,?test_size=0.2,random_state=111 )#?150*0.8=120 len(X_train)

    數據標準化和歸一化

    from?sklearn.preprocessing?import?StandardScaler??#?標準化 from?sklearn.preprocessing?import?MinMaxScaler??#?歸一化#?標準化 ss?=?StandardScaler() X_scaled?=?ss.fit_transform(X_train)??#?傳入待標準化的數據#?歸一化 mm?=?MinMaxScaler() X_scaled?=?mm.fit_transform(X_train)

    類型編碼

    來自官網案例:https://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.LabelEncoder.html

    對數字編碼

    對字符串編碼

    建模案例

    導入模塊

    from?sklearn.neighbors?import?KNeighborsClassifier,?NeighborhoodComponentsAnalysis??#?模型 from?sklearn.datasets?import?load_iris??#?導入數據 from?sklearn.model_selection?import?train_test_split??#?切分數據 from?sklearn.model_selection?import?GridSearchCV??#?網格搜索 from?sklearn.pipeline?import?Pipeline??#?流水線管道操作from?sklearn.metrics?import?accuracy_score??#?得分驗證

    模型實例化

    #?模型實例化 knn?=?KNeighborsClassifier(n_neighbors=5)

    訓練模型

    knn.fit(X_train,?y_train)KNeighborsClassifier()

    測試集預測

    y_pred?=?knn.predict(X_test) y_pred??#?基于模型的預測值array([0,?0,?2,?2,?1,?0,?0,?2,?2,?1,?2,?0,?1,?2,?2,?0,?2,?1,?0,?2,?1,?2,1,?1,?2,?0,?0,?2,?0,?2])

    得分驗證

    模型得分驗證的兩種方式:

    knn.score(X_test,y_test)0.9333333333333333accuracy_score(y_pred,y_test)0.9333333333333333

    網格搜索

    如何搜索參數

    from?sklearn.model_selection?import?GridSearchCV#?搜索的參數 knn_paras?=?{"n_neighbors":[1,3,5,7]} #?默認的模型 knn_grid?=?KNeighborsClassifier()#?網格搜索的實例化對象 grid_search?=?GridSearchCV(knn_grid,?knn_paras,?cv=10??#?10折交叉驗證 ) grid_search.fit(X_train,?y_train)GridSearchCV(cv=10,?estimator=KNeighborsClassifier(),param_grid={'n_neighbors':?[1,?3,?5,?7]})#?通過搜索找到的最好參數值 grid_search.best_estimator_KNeighborsClassifier(n_neighbors=7)grid_search.best_params_

    Out[42]:

    {'n_neighbors':?7}grid_search.best_score_0.975

    基于搜索結果建模

    knn1?=?KNeighborsClassifier(n_neighbors=7)knn1.fit(X_train,?y_train)KNeighborsClassifier(n_neighbors=7)

    通過下面的結果可以看到:網格搜索之后的建模效果是優于未使用網格搜索的模型:

    y_pred_1?=?knn1.predict(X_test)knn1.score(X_test,y_test)1.0accuracy_score(y_pred_1,y_test)1.0往期精彩回顧適合初學者入門人工智能的路線及資料下載中國大學慕課《機器學習》(黃海廣主講)機器學習及深度學習筆記等資料打印機器學習在線手冊深度學習筆記專輯《統計學習方法》的代碼復現專輯 AI基礎下載本站qq群955171419,加入微信群請掃碼:

    總結

    以上是生活随笔為你收集整理的【机器学习】机器学习神器Scikit-Learn保姆级入门教程的全部內容,希望文章能夠幫你解決所遇到的問題。

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