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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

【机器学习】一文速览机器学习的类别(Python代码)

發布時間:2025/3/12 python 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【机器学习】一文速览机器学习的类别(Python代码) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

序列文章:上一篇 ? ?《白話機器學習概念》

一、 機器學習類別

機器學習按照學習數據經驗的不同,即訓練數據的標簽信息的差異,可以分為監督學習(supervised learning)、非監督學習(unsupervised learning)、半監督學習(semi- supervised learning)和強化學習(reinforcement learning)。

1.1 監督學習

監督學習是機器學習中應用最廣泛及成熟的,它是從有標簽的數據樣本(x,y)中,學習如何關聯x到正確的y。這過程就像是模型在給定題目的已知條件(特征x),參考著答案(標簽y)學習,借助標簽y的監督糾正,模型通過算法不斷調整自身參數以達到學習目標。

監督學習常用的模型有:線性回歸、樸素貝葉斯、K最近鄰、邏輯回歸、支持向量機、神經網絡、決策樹、集成學習(如LightGBM)等。按照應用場景,以模型預測結果Y的取值有限或者無限的,可再進一步分為分類或者回歸模型。

分類模型

分類模型是處理預測結果取值有限的分類任務。如下示例通過邏輯回歸分類模型,根據溫濕度、風速等情況去預測是否會下雨。

  • 邏輯回歸簡介

邏輯回歸雖然名字有帶“回歸”,但其實它是一種廣義線性的分類模型,由于模型簡單和高效,在實際中應用非常廣泛。

邏輯回歸模型結構可以視為雙層的神經網絡(如圖4.5)。模型輸入x,通過神經元激活函數f(f為sigmoid函數)將輸入非線性轉換至0~1的取值輸出,最終學習的模型決策函數為Y=sigmoid(wx + b)

。其中模型參數w即對應各特征(x1, x2, x3...)的權重(w1,w2,w3...),b模型參數代表著偏置項,Y為預測結果(0~1范圍)。

模型的學習目標為極小化交叉熵損失函數。模型的優化算法常用梯度下降算法去迭代求解損失函數的極小值,得到較優的模型參數。

  • 代碼示例 示例所用天氣數據集是簡單的天氣情況記錄數據,包括室外溫濕度、風速、是否下雨等,在分類任務中,我們以是否下雨作為標簽,其他為特征(如圖4.6)

import?pandas?as?pd????#?導入pandas庫 weather_df?=?pd.read_csv('./data/weather.csv')???#?加載天氣數據集 weather_df.head(10)???#?顯示數據的前10行from?sklearn.linear_model?import?LogisticRegression??#?導入邏輯回歸模型 x?=?weather_df.drop('If?Rain',?axis=1)??#?特征x y?=?weather_df['If?Rain']??#?標簽y lr?=?LogisticRegression() lr.fit(x,?y)??#?模型訓練 print("前10個樣本預測結果:",?lr.predict(x[0:10])?)?#?模型預測前10個樣本并輸出結果

以訓練的模型輸出前10個樣本預測結果為:[1 1 1 1 1 1 0 1 1 1],對比實際前10個樣本的標簽:[1 1 1 1 1 0 1 0 0 1],預測準確率并不高。在后面章節我們會具體介紹如何評估模型的預測效果,以及進一步優化模型效果。

回歸模型

回歸模型是處理預測結果取值無限的回歸任務。如下代碼示例通過線性回歸模型,以室外濕度為標簽,根據溫度、風力、下雨等情況預測室外濕度。

  • 線性回歸簡介 線性回歸模型前提假設是y和x呈線性關系,輸入x,模型決策函數為Y=wx+b。模型的學習目標為極小化均方誤差損失函數。模型的優化算法常用最小二乘法求解最優的模型參數。

  • 代碼示例

from?sklearn.linear_model?import?LinearRegression??#導入線性回歸模型 x?=?weather_df.drop('Humidity',?axis=1)??#?特征x y?=?weather_df['Humidity']??#?標簽y linear?=?LinearRegression()linear.fit(x,?y)??#?模型訓練 print("前10個樣本預測結果:",?linear.predict(x[0:10])?)?#?模型預測前10個樣本并輸出結果 #?前10個樣本預測結果:?[0.42053525 0.32811401 0.31466161 0.3238797 ?0.29984453 0.29880059

1.2 非監督學習

非監督學習也是機器學習中應用較廣泛的,是從無標注的數據(x)中,學習數據的內在規律。這個過程就像模型在沒有人提供參考答案(y),完全通過自己琢磨題目的知識點,對知識點進行歸納、總結。按照應用場景,非監督學習可以分為聚類,特征降維和關聯分析等方法。如下示例通過Kmeans聚類劃分出不同品種的iris鳶尾花樣本。

  • Kmeans聚類簡介 Kmeans聚類是非監督學習常用的方法,其原理是先初始化k個簇類中心,通過迭代算法更新各簇類樣本,實現樣本與其歸屬的簇類中心的距離最小的目標。其算法步驟為:1.初始化:隨機選擇 k 個樣本作為初始簇類中心(可以憑先驗知識、驗證法確定k的取值);2.針對數據集中每個樣本 計算它到 k 個簇類中心的距離,并將其歸屬到距離最小的簇類中心所對應的類中;3.針對每個簇類 ,重新計算它的簇類中心位置;4.重復上面 2 、3 兩步操作,直到達到某個中止條件(如迭代次數,簇類中心位置不變等)

  • 代碼示例

from?sklearn.datasets?import?load_iris??#?數據集 from?sklearn.cluster?import?KMeans???#??Kmeans模型 import?matplotlib.pyplot?as?plt??#?plt畫圖 lris_df?=?datasets.load_iris()??#?加載iris鳶尾花數據集,數據集有150條樣本,分三類的iris品種 x?=?lris_df.data k?=?3??#?聚類出k個簇類,?已知數據集有三類品種,?設定為3 model?=?KMeans(n_clusters=k)?? model.fit(x)??#?訓練模型 print("前10個樣本聚類結果:",model.predict(x[0:10])?)?#?模型預測前10個樣本并輸出聚類結果:[1 1 1 1 1 1 1 1 1 1]? #?樣本的聚類效果以散點圖展示 x_axis?=?lris_df.data[:,0]?#?以iris花的sepal?length?(cm)特征作為x軸 y_axis?=?lris_df.data[:,1]?#?以iris花的sepal?width?(cm)特征作為y軸 plt.scatter(x_axis,?y_axis,?c=model.predict(x))?#?分標簽顏色展示聚類效果 plt.xlabel('Sepal?length?(cm)')#設定x軸注釋 plt.ylabel('Sepal?width?(cm)')#設定y軸注釋 plt.title('Iris?KMeans?Scatter') plt.show()???#?如圖4.7聚類效果

1.3半監督學習

半監督學習是介于傳統監督學習和無監督學習之間(如圖4.8),其思想是在有標簽樣本數量較少的情況下,以一定的假設前提在模型訓練中引入無標簽樣本,以充分捕捉數據整體潛在分布,改善如傳統無監督學習過程盲目性、監督學習在訓練樣本不足導致的學習效果不佳的問題。按照應用場景,半監督學習可以分為聚類,分類及回歸等方法。如下示例通過基于圖的半監督算法——標簽傳播算法分類俱樂部成員。

  • 標簽傳播算法簡介

標簽傳播算法(LPA)是基于圖的半監督學習分類算法,基本思路是在所有樣本組成的圖網絡中,從已標記的節點標簽信息來預測未標記的節點標簽。

  • 首先利用樣本間的關系(可以是樣本客觀關系,或者利用相似度函數計算樣本間的關系)建立完全圖模型。

  • 接著向圖中加入已標記的標簽信息(或無),無標簽節點是用一個隨機的唯一的標簽初始化。

  • 將一個節點的標簽設置為該節點的相鄰節點中出現頻率最高的標簽,重復迭代,直到標簽不變即算法收斂。

    • 代碼示例該示例的數據集空手道俱樂部是一個被廣泛使用的社交網絡,其中的節點代表空手道俱樂部的成員,邊代表成員之間的相互關系。

    import?networkx?as?nx?#?導入networkx圖網絡庫 import?matplotlib.pyplot?as?plt from?networkx.algorithms?import?community??#?圖社區算法 G=nx.karate_club_graph()???#?加載美國空手道俱樂部圖數據 #注:?本例未使用已標記信息, 嚴格來說是半監督算法的無監督應用案例 lpa?=?community.label_propagation_communities(G)??#?運行標簽傳播算法 community_index?=?{n:?i?for?i,?com?in?enumerate(lpa)?for?n?in?com}?#?各標簽對應的節點 node_color?=?[community_index[n]?for?n?in?G]??#?以標簽作為節點顏色 pos?=?nx.spring_layout(G)??#?節點的布局為spring型 nx.draw_networkx_labels(G,?pos)?#?節點序號 nx.draw(G,?pos,?node_color=node_color)?#?分標簽顏色展示圖網絡 plt.title('?Karate_club?network?LPA') plt.show()?#展示分類效果,不同顏色為不同類別

    1.4 強化學習

    強化學習從某種程度可以看作是有延遲標簽信息的監督學習(如圖4.9),是指智能體Agent在環境Environment中采取一種行為action,環境將其轉換為一次回報reward和一種狀態表示state,隨后反饋給智能體的學習過程。本書中對強化學習僅做簡單介紹,有興趣可以自行擴展。


    文章首發于算法進階,公眾號閱讀原文可訪問GitHub項目源碼

    往期精彩回顧適合初學者入門人工智能的路線及資料下載機器學習及深度學習筆記等資料打印機器學習在線手冊深度學習筆記專輯《統計學習方法》的代碼復現專輯 AI基礎下載機器學習的數學基礎專輯黃海廣老師《機器學習課程》課件合集 本站qq群851320808,加入微信群請掃碼:

    總結

    以上是生活随笔為你收集整理的【机器学习】一文速览机器学习的类别(Python代码)的全部內容,希望文章能夠幫你解決所遇到的問題。

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