python機器基礎邏輯回歸與非監督學習

一、邏輯回歸

1.模型的保存與加載

模型訓練好之後,可以直接保存,需要用到joblib庫。保存的時候是pkl格式,二進制,通過dump方法保存。加載的時候通過load方法即可。

安裝joblib:conda install joblib

保存:joblib.dump(rf, ‘test.pkl’)

加載:estimator = joblib.load(‘模型路徑’)

加載後直接將測試集代入即可進行預測。

2.邏輯回歸原理

邏輯回歸是一種分類算法,但該分類的標準,是通過h(x)輸入後,使用sigmoid函數進行轉換,同時根據閾值,就能夠針對不同的h(x)值,輸出0-1之間的數。我們將這個0-1之間的輸出,認為是概率。假設閾值是0.5,那麼,大於0.5的我們認為是1,否則認為是0。邏輯回歸適用於二分類問題。

①邏輯回歸的輸入

可以看出,輸入還是線性回歸的模型,裡面還是有權重w,以及特征值x,我們的目標依舊是找出最合適的w。

②sigmoid函數

該函數圖像如下:

該函數公式如下:

z就是回歸的結果h(x),通過sigmoid函數的轉化,無論z是什麼值,輸出都是在0-1之間。那麼我們需要選擇最合適的權重w,使得輸出的概率及所得結果,能夠盡可能地貼近訓練集的目標值。因此,邏輯回歸也有一個損失函數,稱為對數似然損失函數。將其最小化,便可求得目標w。

③邏輯回歸的損失函數

損失函數在y=1和0的時候的函數圖像如下:

由上圖可看出,若真實值類別是1,則h(x)給出的輸出,越接近於1,損失函數越小,反之越大。當y=0時同理。所以可據此,當損失函數最小的時候,我們的目標就找到瞭。

④邏輯回歸特點

邏輯回歸也是通過梯度下降進行的求解。對於均方誤差來說,隻有一個最小值,不存在局部最低點;但對於對數似然損失,可能會出現多個局部最小值,目前沒有一個能完全解決局部最小值問題的方法。因此,我們隻能通過多次隨機初始化,以及調整學習率的方法來盡量避免。不過,即使最後的結果是局部最優解,依舊是一個不錯的模型。

3.邏輯回歸API

sklearn.linear_model.LogisticRegression

其中penalty是正則化方式,C是懲罰力度。

4.邏輯回歸案例

①案例概述

給定的數據中,是通過多個特征,綜合判斷腫瘤是否為惡性。

②具體流程

由於算法的流程基本一致,重點都在於數據和特征的處理,因此本文中不再詳細闡述,代碼如下:

註意:

邏輯回歸的目標值不是0和1,而是2和4,但不需要進行處理,算法中會自動標記為0和1

算法預測完畢後,如果想看召回率,需要註意對所分的類別給出名字,但給名字之前需要先貼標簽。見上圖。否則方法不知道哪個是良性,哪個是惡性。貼標簽的時候順序需對應好。

一般情況下,哪個類別的樣本少,就按照哪個來去判定。比如惡性的少,就以“判斷屬於惡性的概率是多少”來去判斷

5.邏輯回歸總結

應用:廣告點擊率預測、是否患病等二分類問題

優點:適合需要得到一個分類概率的場景

缺點:當特征空間很大時,邏輯回歸的性能不是很好 (看硬件能力)

二、非監督學習

非監督學習就是,不給出正確答案。也就是說數據中沒有目標值,隻有特征值。

1.k-means聚類算法原理

假設聚類的類別為3類,流程如下:

①隨機在數據中抽取三個樣本,作為類別的三個中心點

②計算剩餘的點分別道三個中心點的距離,從中選出距離最近的點作為自己的標記。形成三個族群

③分別計算這三個族群的平均值,把三個平均值與之前的三個中心點進行比較。如果相同,結束聚類,如果不同,把三個平均值作為新的聚類中心,重復第二步。

2.k-means API

sklearn.cluster.KMeans

通常情況下,聚類是做在分類之前。先把樣本進行聚類,對其進行標記,接下來有新的樣本的時候,就可以按照聚類所給的標準進行分類。

3.聚類性能評估

①性能評估原理

簡單來說,就是類中的每一個點,與“類內的點”的距離,以及“類外的點”的距離。距離類內的點,越近越好。而距離類外的點,越遠越好。

如果sc_i 小於0,說明a_i 的平均距離大於最近的其他簇。 聚類效果不好

如果sc_i 越大,說明a_i 的平均距離小於最近的其他簇。 聚類效果好

輪廓系數的值是介於 [-1,1] ,越趨近於1代表內聚度和分離度都相對較優

②性能評估API

sklearn.metrics.silhouette_score

聚類算法容易收斂到局部最優,可通過多次聚類解決。

以上就是python機器基礎邏輯回歸與非監督學習的詳細內容,更多關於python機器學習邏輯回歸與非監督的資料請關註WalkonNet其它相關文章!

推薦閱讀: