1. 程式人生 > >《機器學習實戰》-- 邏輯斯蒂迴歸

《機器學習實戰》-- 邏輯斯蒂迴歸

引言

  迴歸我們知道有線性迴歸,線性迴歸模型能夠無限的逼近我們的結果。以(xi,yi)為例,通過線性迴歸 f(x)=wTx+b表示式,就可以得到我們對yi的估計值。

迴歸到分類

  如何從線性迴歸轉換到分類呢?由於線性迴歸得到的是連續值,z=wTx+bz的範圍[,],是這樣的一個連續值無法直接轉換為類別。那怎麼辦?最簡單粗暴的方法,在二分類中,我們設定一個閾值0,當z的值大於0我們就把他歸類為1,小於0歸類為0,z=0時就歸類為0,那不就是得到如下表達式了嗎?

p=0z<00.5z=01z>0
如果我能畫個圖就好了,你看這個表示式像什麼,是不是有點像符號函式(單位階躍函式)。符號函式有一個特點,那就是啥?不可導。不可導會導致什麼後果。比如說,預先設定w
=w1,w2,...wn
的初始值都為1,給定一個樣例(xi,yi),當然此時的x為一個向量。所以通過z=wTx+b得到z值,然後根據符號函式得到p,發現預測的類別和我們的yi不一致,我們是不是要回去更新w值,怎麼更新,用梯度啊,求導啊。可是不可導啊,那可咋整。所以我們不能用線性迴歸去做分類,因此我們需要找一個函式來把剛才計算的z轉換一下,於是對數機率函式就出現了。y=11+ez它就可以把剛才的線性函式轉換為非線性的,而且是處處可導的。範圍在0-1。將剛才的線性函式帶入對數機率函式中得到y=11+e(wTx+b)。這個函式就把[,]對映到了[0,1]實際上我們的y值代表的就是類別為1的概率,那麼1
y
就是類別為0的概率。好吧,那我們就以概率的形式來把他們表示出來:P(y=1|w,b,x)=11+e(wTx+b)
P(y=1|w,b,x)=hw(x)
P(y=0|w,b,x)=e(wTx+b)1+e(wTx+b)
P(y=0|w,x,b)=1hw(x)
我們可以把第二和第四個公式合併成一個,J(hw(x),y)=hw(x)y(1hw(x))(1y)如果y=11y=0就剩第一項了,我們就得到了類別為1的概率。如果y=0,就只剩第二項了,也就是類別為0的概率。將其取對數之後,得到J(hw(x),y)=ylnhw(x)+(1y)ln(1hw(x))這樣給定一個樣本,我們就可以得出該樣本屬於一個類別的概率,而這個概率越大越好,也就是我們希望上面的代價函式能夠取到最大值。
  當然上面是這對一個樣本的代價函式,我們要通過多個樣本來估計引數w
需要用到什麼知識。當然是極大似然函數了,如果不明白可以參考我的前一篇部落格。假設樣本之間是相互獨立的,所以要先將所有樣本的代價函式乘起來,然後取對數將乘轉換為加。即:

相關推薦

統計學習方法邏輯迴歸

邏輯斯諦迴歸(logistic regression) 是統計學習中的經典分類方法。 最大熵是概率模型學習的一個準則, 將其推廣到分類問題得到最大熵模型(maximum entropy model) 。邏輯斯諦迴歸模型與最大熵模型都屬於對數線性模型。本文只介紹邏輯斯諦迴歸。 設X是連續隨機變數, X

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

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

機器學習實戰》--邏輯迴歸

梯度下降視覺化 前一篇看完了理論,我們來實戰一下,首先看一下梯度下降的效果 先看程式碼 # 目標函式 def func(x): return np.square(x) # 目標函式一階導數 def dfunc(x): return 2

機器學習實戰》-- 邏輯迴歸

引言   迴歸我們知道有線性迴歸,線性迴歸模型能夠無限的逼近我們的結果。以(xi,yi)為例,通過線性迴歸 f(x)=wTx+b表示式,就可以得到我們對yi的估計值。 迴歸到分類   如何從線性迴歸轉換到分類呢?由於線性迴歸得到的是連續值,z=wTx+b,

機器學習筆記:線性迴歸邏輯迴歸推導

參考書籍:《統計學習方法》,cs229,其他 1、線性迴歸 1.1、線性迴歸表示 線性迴歸屬於監督學習問題,輸入X與輸出Y成線性關係,只要我們得到了這個具體的關係,那麼對於待預測的資料X我們便可以知道Y的值。現在就來求這個線性關係 先定義好變量表示。記輸入變量表示為

機器學習筆記(一) 邏輯迴歸LR

本文是在學習完李航老師的《統計學習方法》後,在網上又學習了幾篇關於LR的部落格,算是對LR各個基礎方面的一個回顧和總結。 一 簡述   邏輯斯蒂迴歸是一種對數線性模型。經典的邏輯斯蒂迴歸模型(LR

機器學習 sklearn】邏輯迴歸模型--Logistics regression

執行結果: "D:\Program Files\Python27\python.exe" D:/PycharmProjects/sklearn/Logistics_regression.py Logistics regression [[99 1] [

統計學習---邏輯迴歸與最大熵模型

邏輯斯蒂迴歸和最大熵模型 邏輯斯蒂分佈 邏輯斯蒂迴歸模型 將權值向量和輸入向量加以擴充後的邏輯斯蒂模型為 模型引數估計 極大似然估計法 最大熵模型 最大熵原理:在所有可能的概率模型中,熵最大的模型是最好的模型。通常用約

《統計學習方法(李航)》邏輯迴歸與最大熵模型學習筆記

作者:jliang https://blog.csdn.net/jliang3   1.重點歸納 1)線性迴歸 (1)是確定兩種或以上變數間相互依賴的定量關係的一種統計分析方法。 (2)模型:y=wx+b (3)誤差函式: (4)常見求解方法 最小

sklean學習之LogisticRegression(邏輯迴歸分類器)【原始碼】

def fit(self, X, y, sample_weight=None):        """根據給定的訓練資料擬合模型.       引數        ----------        X : {array-like, sparse matrix}, shape (n_samples, n_fe

李航·統計學習方法筆記·第6章 logistic regression與最大熵模型(1)·邏輯迴歸模型

第6章 logistic regression與最大熵模型(1)·邏輯斯蒂迴歸模型 標籤(空格分隔): 機器學習教程·李航統計學習方法 邏輯斯蒂:logistic 李航書中稱之為:邏輯斯蒂迴歸模型 周志華書中稱之為:對數機率迴歸模

Hinton Neural Networks課程筆記3c:學習邏輯迴歸

這節可以看做反向傳播(BP)演算法在邏輯斯蒂迴歸(logistic regression)中的應用。 為了進一步拓展BP演算法的應用,從線性神經元拓展到了非線性神經元。這裡選取了最簡單的非線性神經元:邏輯斯蒂輸出神經元(logistic output ne

《統計學習方法》1——邏輯迴歸

1. 模型 二項邏輯斯蒂迴歸模型是由邏輯斯蒂分佈的條件概率分佈表示的分類模型。 邏輯斯蒂分佈函式為 其中,u是位置引數,是中心點(對稱點)的位置;r是形狀函式。 其分佈圖形是一條S形曲線,也就是sigmoid曲線,S形曲線的範圍是(0,1)。

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

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

機器學習實戰程式碼_Python3.6_Longistic迴歸

import math import numpy as np import matplotlib.pyplot as plt def load_data_set(): data_mat = [] label_mat = [] fr =

邏輯斯蒂迴歸能否解決非線性分類問題? 邏輯斯蒂迴歸提出時用來解決線型分類問題,其分離面是一個線型超平面wx+b,如果將這個超平面改成非線性的,如x1^2+x2=0之類的非線性超平面來進行分類,是否也可

邏輯迴歸的模型引入了sigmoid函式對映,是非線性模型,但本質上又是一個線性迴歸模型,因為除去sigmoid對映函式關係,其他的步驟,演算法都是線性迴歸的。可以說,邏輯迴歸,都是以線性迴歸為理論支援的。 這裡講到的線性,是說模型關於係數一定是線性形式的 加入sigmoid對

機器學習實戰-邏輯回歸

one har 改進 lin [] readlines 機器 iter sun 邏輯回歸:簡單的來說,在線性回歸的基礎上加入了Sigmoid函數! import numpy as np import matplotlib.pyplot as plt from matp

機器學習3 邏輯提回歸和梯度下降演算法

引言 上節我們介紹了很多線性迴歸模型,如何用線性模型做分類任務呢?是不是可以將線性迴歸模型的預測值和到分類任務的標記聯絡起來呢? 邏輯斯提回歸 對於一個二分類任務,輸出標記y為{0,1},而線性迴歸模型產生的預測值z為全體實數,我們想把z轉換成0/1值。我們首先想到是“單位階躍函式”。

邏輯迴歸用sigmoid函式的原因?

sigmoid函式的數學公式                  sigmoid函式的因變數x取值範圍是-∞到+∞,(-∞,+∞),但是sigmoid函式的值域是(0, 1)。 不管x取什麼值其對應的sigmoid函式值一定會落到(0,1)範圍內~~~ 漂亮的logis

機器學習實戰——python實現Logistic迴歸

簡介 Logistic迴歸的目的是尋找一個非線性函式Sigmoid的最佳擬合引數,一般使用梯度上升演算法。 對於有n個屬性的train資料集(X1,X2,...Xn),我們尋找一組迴歸係數(W0,W1