1.邏輯回歸
邏輯回歸從統計學的角度看屬於非線性回歸中的一種,它實際上是一種分類方法,主要用於兩分類問題
regression問題的常規步驟為:
尋找h函式(即假設估計的函式);
構造j函式(損失函式);
想辦法使得j函式最小並求得回歸引數(θ);
資料擬合問題
1)利用了logistic函式(或稱為sigmoid函式),函式形式為最常見的
2)代價函式j
下面的代價函式j之所有前面加上1/m是為了後面」梯度下降求引數θ時更方便「,也即這裡不加1/m也可以。
3)使得j函式最小並求得回歸引數(θ)
如何調整θ以使得j(θ)取得最小值有很多方法,比如最小二乘法,梯度下降也是一種,這裡介紹一下梯度下降。
梯度下降是最基礎的乙個優化演算法,學習因子就是梯度下降裡的學習率,乙個引數。
梯度方向表示了函式增長速度最快的方向,那麼和它相反的方向就是函式減少速度最快的方向了。對於機器學習模型優化的問題,當我們需要求解最小值的時候,朝著梯度下降的方向走,就能找到最優值了。
學習因子即步長α的選擇對梯度下降演算法來說很重要,α過小會導致收斂太慢;若α太大,可能跳過最優,從而找不到最優解。
1)當梯度下降到一定數值後,每次迭代的變化很小,這時可以設定乙個閾值,**只要變化小於該閾值,就停止迭代,而得到的結果也近似於最優解。**
2)若損失函式的值不斷變大,則有可能是步長速率a太大,導致演算法不收斂,這時可適當調整a值
對於樣本數量額非常之多的情況,普通的**批量梯度下降**演算法(batch gradient descent )會非常耗時,靠近極小值時收斂速度減慢,因為每次迭代都要便利所有樣本,這時可以選擇**隨機梯度下降演算法**(stochastic gradient descent)
梯度下降**需要把m個樣本全部帶入計算**,迭代一次計算量為m\\*n^2;隨機梯度下降每次只使用乙個樣本,迭代一次計算量為n^2,當m很大的時候,隨機梯度下降迭代一次的速度要遠高於梯度下降,雖然不是每次迭代得到的損失函式都向著全域性最優方向,** 但是大的整體的方向是向全域性最優解的,最終的結果往往是在全域性最優解附近。**
4)資料的擬合問題
第一種是欠擬合,通常是因為特徵量選少了。
第二種是我們想要的。
第三個是過擬合,通常是因為特徵量選多了。
欠擬合的解決方法是增加特徵量。
過擬合的解決方法是減少特徵量或者正則化。
但是一般情況下我們又不能確定哪些特徵量該去掉,所以我們就選擇正則化的方式解決過擬合。
2.決策樹
決策樹這種演算法有著很多良好的特性,比如說訓練時間複雜度較低,**的過程比較快速,模型容易展示。單決策樹又有一些不好的地方,比如說容易over-fitting
這裡首先介紹如何構造決策樹:
(1)如何分割某一結點,方法有很多,分別針對二元屬性、序數屬性、連續屬性等進行劃分。
(2)在有多個特徵時,如何確定最佳的分割特徵。
這裡就涉及到純度的概念,若分割後的子結點都更偏向於乙個類,那麼純度越高。
但實際中我們通常對不純度進行度量,即不純度越小,則認為該特徵的區分度越高。
不純度的度量方式有三種:
具體的計算方法如下:
上圖10中得到多個子結點m1,m2的gini或者熵後,一般通過加權平均的方法求m12;
那麼增益就可以用m0-m12來表示
在決策樹演算法中,通過比較劃分前後的不純度值,來確定如何**。id3使用資訊增益作為不純度,c4.5使用資訊增益比作為不純度,cart使用基尼指數作為不純度。
(3)何時停止劃分。
11.png
3.隨機森林
隨機森林是乙個包含多個決策樹的分類器,構建過程如下:
1)決策樹相當於乙個大師,通過自己在資料集中學到的知識對於新的資料進行分類。但是俗話說得好,乙個諸葛亮,玩不過三個臭皮匠。隨機森林就是希望構建多個臭皮匠,希望最終的分類效果能夠超過單個大師的一種演算法。
2)那隨機森林具體如何構建呢?有兩個方面:資料的隨機性選取,以及待選特徵的隨機選取。
特徵重要度整理 隨機森林 邏輯回歸
一 隨機森林輸出特徵重要度 用隨機森林進行特徵重要性評估的思想其實很簡單,通俗來講就是看每個特徵在隨機森林中的每顆樹上做了多大的貢獻,取平均值,然後比較特徵之間的貢獻大小。常見的計算方法有兩種,一種是平均不純度的減少 mean decrease impurity 常用gini entropy inf...
分類 回歸演算法 隨機森林
源位址 在得到森林之後,當有乙個新的輸入樣本進入的時候,就讓森林中的每一棵決策樹分別進行一下判斷,看看這個樣本應該屬於哪一類,然後看看哪一類被選擇最多,就 這個樣本為那一類。回歸 在決策樹的根部,所有的樣本都在這裡,此時樹還沒有生長,這棵樹的殘差平方和就是回歸的殘差平方和。然後選擇乙個變數也就是乙個...
《scikit learn》隨機森林之回歸
今天我們學習下隨機森林做回歸的用法 話不多說直接上測試 看的更加清晰,總體上和回歸樹是一樣的使用流程 from sklearn.datasets import load boston from sklearn.model selection import cross val score from s...