標籤:經典演算法 http png mod 比較 曆史 alt element 不同
ps:本部落格內容根據唐宇迪的的機器學習經典演算法 學習視頻複製總結而來http://www.abcplus.com.cn/course/83/tasks
羅吉斯迴歸
問題描述:我們將建立一個羅吉斯迴歸模型來預測一個學生是否被大學錄取。假設你是一個大學系的管理員,你想根據兩次考試的結果來決定每個申請人的錄取機會。你有以前的申請人的曆史資料,你可以用它作為羅吉斯迴歸的訓練集。對於每一個培訓例子,你有兩個考試的申請人的分數和錄取決定。為了做到這一點,我們將建立一個分類模型,根據考試成績估計入學機率。
資料下載:https://pan.baidu.com/s/1pNbtrjP
資料大概長這個樣
1、查看資料基本屬性
2、畫圖觀察plot結構剖析
來自https://www.jianshu.com/p/b4b5dd20e48a
3、建立分類器(求解出三個參數 θ0、θ1、θ2)
設定閾值,根據閾值判斷錄取結果(此處設定為50%,≥50%即判斷錄取)
要完成的模組:
- sigmoid : 映射到機率的函數
model : 返回預測結果值
cost : 根據參數計算損失
gradient : 計算每個參數的梯度方向
descent : 進行參數更新
accuracy: 計算精度
4、損失函數
5、計算梯度
6、梯度下降(比較三種梯度下降方法)
下面這段代碼僅僅是將過程可視化
7、不同的停止策略①設定迭代次數
②根據損失值停止
上面的迭代次數過少,修改閾值為1E-6,迭代次數大概需要110000次 。會發現值再次降低
這種策略雖然準確度較高,但是迭代次數多,計算量大
③、根據梯度變化停止
設定閾值 0.05,差不多需要40 000次迭代
8、對比不同的梯度下降方法 ①Stochastic descent 隨機梯度下降
相當不穩定,再來試試把學習率調小一些
速度快,效果和穩定性都差,需要很小的學習率
②Mini-batch descent 小批量梯度下降
標準化/歸一化
浮動仍然比較大,我們來嘗試下對資料進行標準化 將資料按其屬性(按列進行)減去其均值,然後除以其方差。最後得到的結果是,對每個屬性/每列來說所有資料都聚集在0附近,方差值為1。
它好多了!未經處理資料,只能達到達到0.61,而我們得到了0.38個在這裡! 所以對資料做預先處理是非常重要的。
更多的迭代次數會使得損失下降的更多!
隨機梯度下降更快,但是我們需要迭代的次數也需要更多,所以還是用batch的比較合適!
9、精度
[Python]資料採礦(1)、梯度下降求解羅吉斯迴歸——考核成績分類