1. 程式人生 > >機器學習實戰【4】(邏輯迴歸)

機器學習實戰【4】(邏輯迴歸)

本部落格記錄《機器學習實戰》(MachineLearningInAction)的學習過程,包括演算法介紹和python實現。

邏輯迴歸

對於一個數據集中的樣本,將其每個特徵乘上一個對應的係數,然後輸入sigmoid函式中把結果對映到0-1區間內,用這個結果作為分類依據,這種方式稱為邏輯迴歸。

sigmoid函式

sigmoid函式公式及影象如下:

σ(z)=11+ez

sigmoid函式影象

可以看出在x為0時,函式值為0.5,x>0時逐漸趨向1,x<0時逐漸趨向0。這個性質使得sigmoid函式可以把實數域內的資料對映到0-1範圍內,從而完成分類的任務。

迴歸引數確定

邏輯迴歸中最重要的一部就是引數的確定,如何選擇最優的引數使得模型分類時能夠達到更高的準確率。這裡用到的尋找最優引數的方法是一種最優化方法——梯度上升法。

在二分類問題中,把樣本資料的每個特徵乘以迴歸係數θ 並求和,將結果輸入到sigmoid函式中,把得到的結果作為分到1類的概率。這樣,結果大於0.5的樣本就分到1類,小於0.5的樣本就分到0類。構造預測函式如下:

hθ(x)=g(θTx)=11+eθTx

這個hθ(x) 就代表了樣本分到1類的概率,θTx 代表引數與輸入樣本的特徵向量x的加權和,於是有:

p(y=1|x;θ)=hθ(x)

p(y=0|x;θ)=1hθ(x)

綜合起來寫就是對於樣本x,在引數為θ 時,分到y類的概率為:

p(y|x;θ)=hθ(x)y(1hθ(x))1y

假設輸入的樣本特徵為x1...xn,對應的分類結果為y

1...yn,那麼最優的引數應該使L(θ) 最大:

L(θ)=i=1np(yi|xi;θ)=i=1nhθ(xi)yi(1hθ(xi))1yi

這裡用到了最大似然法,引用百度百科的定義:

最大似然法(Maximum Likelihood,ML)也稱為最大概似估計,也叫極大似然估計,是一種具有理論性的點估計法,此方法的基本思想是:當從模型總體隨機抽取n組樣本觀測值後,最合理的引數估計量應該使得從模型中抽取該n組樣本觀測值的概率最大

L(θ) 表示模型分類結果與n個樣本資料都符合的概率,稱為似然函式,根據最大似然法,我們以L(θ) 的值最大作為標準確定模型引數θ 。為了找到函式的最大值,採用的方法就是梯度上升法。

所謂梯度就是指函式值在任意點遞增最快的方向,用 表示。梯度上升法是一種引數更新的方法,初始時給引數θ 賦初值,計算L(θ) 在引數點的梯度,把梯度乘以步長後加到引數上來更新引數,這樣引數的每次更新都會朝著使得L(θ) 增加最快的方向進行,引數更新公式如下:

θ=θ+αL(θ)

對於每一個引數:

θj=θj+αθjL(θ)

為了便於計算,將L(θ) 取對數,即改為求l(θ)=logL(θ) 的最大值:

θjl(θ)=θilog(i=1nhθ(xi)yi(1hθ(xi))1yi)=θji=1nyilog(hθ(

相關推薦

機器學習實戰4邏輯迴歸

本部落格記錄《機器學習實戰》(MachineLearningInAction)的學習過程,包括演算法介紹和python實現。 邏輯迴歸 對於一個數據集中的樣本,將其每個特徵乘上一個對應的係數,然後輸入sigmoid函式中把結果對映到0-1區間內,

機器學習實戰5SVM-支援向量機

本部落格記錄《機器學習實戰》(MachineLearningInAction)的學習過程,包括演算法介紹和python實現。 SVM(支援向量機) SVM是一種分類演算法,通過對訓練集資料的分析找到最好的分隔平面,然後用該平面對新資料進行分類。本

機器學習筆記2.2邏輯迴歸預測馬疝病的死亡率

資料預處理:如何處理資料中的缺失值       假設有 100 個樣本和 20 個特徵 ,這些資料都是機器收集回來的。若機器上的某個感測器損壞導致一個特徵無效時該怎麼辦?此時是否要扔掉整個資料?這種情況下,另外19 個特徵怎麼辦?它們是否還可用?答案是肯定的。因為有時候資料相

AC軍團週報第四周第一篇線段樹從入門到入土4未完成

本文章連載AC軍團週報 -> 線段樹 : 從入門到入土【4】 前言 從前有一位遠古神犇,他彙集各大資料結構之精華,經過艱苦卓絕的研究,終於煉製成了一種新的,更簡潔的,更快的線段樹——zkw線段樹 (大霧) 四、zkw線段樹基礎 我們已經學過了線段樹的基礎了,相信大家已經熟練掌握線段樹大概的樣

吳恩達《deeplearning深度學習》課程學習筆記1精簡總結

畢業以後就沒再寫過部落格,又想起來了。 Ps:本文只是個人筆記總結,沒有大段的詳細講解,僅僅是將自己不熟悉和認為重要的東西總結下來,算是一個大綱,用的時候方便回憶和查詢。 Ps2:部分筆記內容見圖片。 相關課程內容 一、神經網路和深度學習 第一週 深

吳恩達《deeplearning深度學習》課程學習筆記3精簡總結

相關課程內容 二、改善深層神經網路 第一週 深度學習的實用層面 知識點總結 1. 訓練集與測試集分佈不匹配問題 訓練集(train) 驗證集(dev) 測試集(test):test和

機器學習入門之房價預測線性迴歸

#!/usr/bin/env python # coding: utf-8 # In[1]: # 1.定義問題 # 2.匯入資料 # 匯入類庫 import numpy as np import pandas as pd import matplotlib.pyplot as plt impo

機器學習實戰—第4章:基於概率論的分類方法:樸素貝葉斯程式碼報錯python3

1、報錯:UnicodeDecodeError: ‘gbk’ codec can’t decode byte 0xae in position 199: illegal multibyte sequence 原因:這是檔案編碼的問題,檔案中有非法的多位元組字元。 解決辦法:開啟Ch04\

深度學習一文讀懂機器學習常用損失函數Loss Function

back and 們的 wiki 導出 歐氏距離 classes 自變量 關於 最近太忙已經好久沒有寫博客了,今天整理分享一篇關於損失函數的文章吧,以前對損失函數的理解不夠深入,沒有真正理解每個損失函數的特點以及應用範圍,如果文中有任何錯誤,請各位朋友指教,謝謝~

機器學習框架ML.NET學習筆記4多元分類之手寫數字識別

一、問題與解決方案 通過多元分類演算法進行手寫數字識別,手寫數字的圖片解析度為8*8的灰度圖片、已經預先進行過處理,讀取了各畫素點的灰度值,並進行了標記。 其中第0列是序號(不參與運算)、1-64列是畫素值、65列是結果。 我們以64位畫素值為特徵進行多元分類,演算法採用SDCA最大熵分類演算法。

python第一章1.4 數字和表達式

python以下內容是我學習《Python基礎教程》第2版 這本書所寫的筆記 轉載請註明出處1.>>> 2.75%.50.25【不同】C語言中取余運算必須為整數,不能是浮點型2.>>>(-3)**29【不同】C語言中pow (double x,double n);(將返回

原創Logistic regression 邏輯迴歸 概述

 Logistic regression (邏輯迴歸)是當前業界比較常用的機器學習方法,用於估計某種事物的可能性。比如某使用者購買某商品的可能性,某病人患有某種疾病的可能性,以及某廣告被使用者點選的可能性等。(注意這裡是:“可能性”,而非數學上的“概率”,logis

機器學習實戰筆記4—Logistic迴歸

注:此係列文章裡的部分演算法和深度學習筆記系列裡的內容有重合的地方,深度學習筆記裡是看教學視訊做的筆記,此處文章是看《機器學習實戰》這本書所做的筆記,雖然演算法相同,但示例程式碼有所不同,多敲一遍沒有壞處,哈哈。(裡面用到的資料集、程式碼可以到網上搜索,很容易找到。)。Python版本3.6

機器學習經典演算法梳理一.線性迴歸

【機器學習經典演算法梳理】是一個專門梳理幾大經典機器學習演算法的部落格。我在這個系列部落格中,爭取用最簡練的語言、較簡潔的數學公式,和清晰成體系的提綱,來盡我所能,對於演算法進行詳盡的梳理。【機器學習經典演算法梳理】系列部落格對於機器學習演算法的梳理,將從“基本思想”、“基本形式”、“過程推導”、“

機器學習作業-Logistic Regression邏輯迴歸

ML課堂的第二個作業,邏輯迴歸要求如下: 資料集連結如下: 邏輯迴歸的關鍵是運用了sigmod函式,sigmod函式有一個很好的性質是其導函式很好求 函式影象: sigmod會將函式值對映到(0,1)區間內,將其輸出值看作是概率則有邏輯迴歸的二分類模型

機器學習演算法與Python實踐之邏輯迴歸Logistic Regression

#!/usr/bin/python # -*- coding:utf-8 -*- import numpy as np from numpy import * import matplotlib.pyplot as plt #處理資料函式 def loadDataSet():

機器學習實戰》第5章邏輯斯蒂迴歸數學推導

在《機器學習實戰》一書的第5章邏輯斯蒂迴歸的程式碼介紹中,p79中開頭有一句,“此處略去了一個簡單的數學推導”,那麼到底略去了哪一個簡單的數學推導呢?本著要將這個演算法徹底搞明白的態度,筆者在百度上搜了好多資料,終於找到了相關的資料,以供參考。 從上圖中按照邏輯斯蒂迴歸演算法,利用梯

深度學習筆記——理論與推導之Structured LearningNLP十二

Language Technology Meaning of Word(一個vector表示一個word) Predicting the next word 給一串sequence of words,預測下一個單詞 我們現在要做的就是將wi

機器學習實戰-第六章支援向量機

1 拉格朗日乘子法(等式約束): 目標函式:f(x)=b+wTxi+∑(αihi),s.t.hi=0 最優解條件:∂h∂xi=0 2 kkt(不等式約束): 目標函式:f(x)=b+wTxi+∑(αigi)+∑(βihi),s.t.hi=0,gi≤0

機器學習實戰筆記4(樸素貝葉斯)

前面介紹的kNN和決策樹都給出了“該資料例項屬於哪一類”這類問題的明確答案,而有時候的分類並不能給出明確的答案,本節講解使用概率論進行分類的方法。 1:簡單概念描述 概念比較簡單,這裡我摘抄自百度百科,很容易理解。 樸素貝葉斯模型(NaiveBayesian classif