[Python]資料採礦(1)、梯度下降求解羅吉斯迴歸——考核成績分類

來源:互聯網
上載者:User

標籤:經典演算法   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)、梯度下降求解羅吉斯迴歸——考核成績分類

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.