1. 程式人生 > >邏輯迴歸(logistics regression)演算法及例項

邏輯迴歸(logistics regression)演算法及例項

邏輯迴歸簡介

邏輯迴歸(Logistic Regression)是機器學習中的一種二分類模型(主要為二分類應用,Softmax 迴歸是直接對邏輯迴歸在多分類的推廣,即多元邏輯迴歸),由於演算法的簡單和高效,在實際中應用非常廣泛。

  • 主要用途:

    1. 尋找危險因素:什麼樣的使用者通常會是“bad”使用者?
    2. 預測判別:使用者是 “good”還是“bad”? 多大的概率是好使用者,多大的概率是差使用者?
  • 二分類問題及應用:

    1. 獲客評估:判斷使用者是否會成為平臺客戶;
    2. 交易評估:判斷使用者申請貸款時是否能通過;
    3. 風險評估:判斷使用者還款時是否會預期;
    4. 客戶留存:判斷使用者是否會流失;
    5. 客戶價值:判斷使用者是否能產生預期的價值;
    6. 使用者畫像:判斷使用者是否具備某一屬性(如性別、品類偏好等)

這些問題都可以看成是二分類問題,這些問題本身有很重要的價值,能夠幫助我們更好的瞭解我們的使用者,服務我們的使用者。

邏輯迴歸的適用性

1) 可用於概率預測,也可用於分類。
2) 僅能用於線性問題
只有在feature和target是線性關係時,才能用Logistic Regression(不像SVM那樣可以應對非線性問題)。這有兩點指導意義,一方面當預先知道模型非線性時,果斷不使用Logistic Regression; 另一方面,在使用Logistic Regression時注意選擇和target呈線性關係的feature。
3) 各feature之間不需要滿足條件獨立假設,但各個feature的貢獻是獨立計算的。
邏輯迴歸不像樸素貝葉斯一樣需要滿足條件獨立假設(因為它沒有求後驗概率)。但每個feature的貢獻是獨立計算的,即LR是不會自動幫你combine 不同的features產生新feature的 (這是決策樹,LSA, pLSA, LDA或者你自己要乾的事情)。舉個例子,如果你需要TF*IDF這樣的feature,就必須明確的給出來,若僅僅分別給出兩維 TF 和 IDF 是不夠的,那樣只會得到類似 a*TF + b*IDF 的結果,而不會有 c*TF*IDF 的效果。

邏輯迴歸一般過程

  • 收集資料:主要是根據業務目標收集相關的資料,模型效果往往和所用特徵密切相關
  • 準備資料:因為需要進行距離計算,因而要求資料型別為數值型。另外,結構化資料格式最佳
  • 分析資料:分析並進行資料的預處理
  • 訓練演算法:大部分時間將用於訓練,目的是為了找到最佳的分類係數
    1. 尋找h函式(即hypothesis);
    2. 構造J函式(損失函式);
    3. 想辦法使得J函式最小並求得迴歸引數(θ)
  • 測試演算法:模型評估
  • 使用演算法:獲取新資料,轉化成對應的結構化數值,基於訓練好的迴歸係數就可以對這些數值進行簡單的迴歸計算,判定新資料屬於哪個類別;在這之後,可以在輸出的類別上做一些其他分析工作

邏輯迴歸的關鍵概念

  • sigmod函式(hypothesis)
    1.數學形式:
    g(x)=11+ex

這裡寫圖片描述
2.邏輯迴歸的sigmod函式

P(Y=1|x)=11+ewx
這裡寫圖片描述
  • 最優化理論(損失函式)
    1.介紹:邏輯迴歸的優化目標函式:
    ①LR輸出的是分到每一類的概率,則引數估計的方法為最大似然估計 (MLE) 。
    ②假設訓練的每個樣本獨立,輸出為 y = {0, 1},樣本的似然函式就是將所有訓練樣本 label 對應的輸出節點上的概率相乘, 令 p = P(Y=1|x) ,如果 y = 1, 概率就是 p, 如果 y = 0, 概率就是 1 - p , 將這兩種情況合二為一,得到似然函式:

    [P(Y=1|xi)yi][1P(Y=1|xi)1yi]
    對應的似然函式如下:
    L(w)=[yi(wxi)ln(1+exp(wxi))]

    3.難點:全域性最優VS區域性最優

  • 梯度上升/梯度下降最優化演算法:(通常採用梯度下降最優化演算法)
    這裡主要介紹兩種梯度優化演算法,其中批量梯度優化演算法每一次迭代需要掃描所有的樣本資料;隨機梯度下降法每一次迭代只需要考慮一個樣本即可。明顯的,隨機梯度優化演算法在計算消耗上由於批量梯度優化演算法,但是可能實際的求取最優值得效果比不上批量梯度優化演算法。對於凸函式,隨機梯度下降演算法最終的結果與批量梯度優化演算法差不多。
    目標函式:J(w)=1nL(w)
    批量梯度下降法:
    wi=wiαwJ(w)
    隨機梯度下降法:
    for j=1 to m {
    wi=wiαwJ(w)
    (for all i)
    }

  • 正則化

    1. 過擬合問題:邏輯迴歸的過擬合問題主要是特徵太多造成的,一般不存在過擬合問題,特徵過多可以採取正規化的方式加以解決

    2. 解決方法

  • 多分類:
    可以利用邏輯迴歸進行多分類,與上述二分類邏輯迴歸的主要區別在於假設函式,上述為sigmod函式,多分類問題可以採用softmax函式進行對映。

  • 總結

邏輯迴歸的優點:
1)實現簡單,對因變數的分佈沒有要求;
2)對構建的模型有較強的解釋性;
3)可以適用於連續性(特徵離散化處理)和類別性自變數;
4)分類時計算量小,速度快,儲存資源低

邏輯迴歸的不足:
1)處理海量、多維、非線性的資料時效果不是很好;
2)演算法的範化能力、靈活性比較差;
3)演算法處理資料的不對稱性問題能力不足;
4)容易欠擬合,一般準確度不太高

邏輯迴歸的數學模型和求解都相對比較簡潔,實現相對簡單。通過對特徵做離散化和其他對映,邏輯迴歸也可以處理非線性問題,是一個非常強大的分類器。因此在實際應用中,當我們能夠拿到許多低層次的特徵時,可以考慮使用邏輯迴歸來解決我們的問題。

相關推薦

邏輯迴歸logistics regression演算法例項

邏輯迴歸簡介 邏輯迴歸(Logistic Regression)是機器學習中的一種二分類模型(主要為二分類應用,Softmax 迴歸是直接對邏輯迴歸在多分類的推廣,即多元邏輯迴歸),由於演算法的簡單和高效,在實際中應用非常廣泛。 主要用途: 尋找危險因素

邏輯迴歸Logistic Regression演算法小結

一、邏輯迴歸簡述:   回顧線性迴歸演算法,對於給定的一些n維特徵(x1,x2,x3,......xn),我們想通過對這些特徵進行加權求和彙總的方法來描繪出事物的最終運算結果。從而衍生出我們線性迴歸的計算公式:        向量化表示式:         &n

機器學習之邏輯迴歸logistics regression程式碼牛頓法實現

      先貼一張圖解釋牛頓法原理:       然後以一道問題為例:       這個問題是《機器學習》周志華版本上的題目,給了西瓜的密度和含糖率資料,判斷西瓜的好壞。資料在程式碼裡。       下面貼一下程式碼: <span style="font-size

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

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

機器學習經典演算法詳解Python實現--線性迴歸Linear Regression演算法

(一)認識迴歸 迴歸是統計學中最有力的工具之一。機器學習監督學習演算法分為分類演算法和迴歸演算法兩種,其實就是根據類別標籤分佈型別為離散型、連續性而定義的。顧名思義,分類演算法用於離散型分佈預測,如前

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

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

機器學習專案實戰--邏輯迴歸Logistic Regression

(一)邏輯迴歸 邏輯迴歸演算法是一種廣義的線性迴歸分析模型, 可用於二分類和多分類問題, 常用於資料探勘、疾病自動診斷、經濟預測等領域。通俗來說, 邏輯迴歸演算法通過將資料進行擬合成一個邏輯函式來預估一個事件出現的概率,因此被稱為邏輯迴歸。因為演算法輸出的為事件發生概率, 所以其輸出值應該在0

邏輯迴歸Logisic Regression

一. 線性迴歸 VS 邏輯迴歸 線性迴歸,一般處理因變數是數值型區間變數(連續),用來擬合因變數和自變數之間的線性關係,但是因變數和自變數都是連續區間,常見的線性模型:                                                  

基於Ubuntu16.04+Spark+Python的線性迴歸linear regression演算法

參考: spark+python+ubuntu環境配置: https://blog.csdn.net/konglingshneg/article/details/82491157 Building A Linear Regression with PySpark and MLl

機器學習/邏輯迴歸logistic regression/--附python程式碼

個人分類: 機器學習 本文為吳恩達《機器學習》課程的讀書筆記,並用python實現。 前一篇講了線性迴歸,這一篇講邏輯迴歸,有了上一篇的基礎,這一篇的內容會顯得比較簡單。 邏輯迴歸(logistic regression)雖然叫回歸,但他做的事實際上是分類。這裡我們討論二元分類,即只分兩類,y屬於{0,1}。

機器學習之邏輯迴歸logistic regression

概述 邏輯斯蒂迴歸實質是對數機率迴歸(廣義的線性迴歸),是用來解決分類問題的。 其中sigmoid用來解決二分類問題,softmax解決多分類問題,sigmoid是softmax的特殊情況。 數學建模直接針對分類可能性建模。 引數學習可用極大似然估計

Python手擼邏輯迴歸logistic regression

與線性迴歸用於預測連續值不同,邏輯歸回用於分類,原理與線性迴歸類似,定義損失函式,然後最小化損失,得到引數既模型,只不過損失的定義不同。 邏輯迴歸的假設如圖1所示,可以理解為線性迴歸外面套了一層sigmoid函式g(z),sigmoid函式影象如圖2所示,該函式有很好的數學

邏輯迴歸Logistic+Regression經典例項

房價預測 資料集描述 資料共有81個特徵 SalePrice - the property’s sale price in dollars. This is the target variable that you’re trying to pre

邏輯迴歸Logistic Regression

1、總述 邏輯迴歸是應用非常廣泛的一個分類機器學習演算法,它將資料擬合到一個logit函式(或者叫做logistic函式)中,從而能夠完成對事件發生的概率進行預測。 2、由來     要說邏輯迴歸,我們得追溯到線性迴歸,想必大家對線性迴歸都有一定的瞭解,即對於多維空間中存在

邏輯迴歸logistic regression和線性迴歸linear regression

序號 邏輯迴歸 線性迴歸 模型歸類 離散選擇法模型 迴歸分析 數值型別 二元 一元或多元 公式 P(Y=1│X=x)=exp(x'β)/(1+exp(x'β)) 邏輯迴歸 Logit模型(Logit model,也譯作“評定模型”,“分類評定模型”,又作Logistic

樸素貝葉斯法naive bayes邏輯迴歸logistic regression線性迴歸

樸素貝葉斯法實際上學習到生成資料的機制,所以屬於生成模型。條件獨立假設等於是說用於分類的特徵在類確定的條件下都是條件獨立的,但是有的時候會失去一些分類準確性。對於給定的輸入x,通過學習到的模型計算後驗概率分佈,將後驗概率最大的類作為x的類輸出主要是使用貝葉斯公式推導的過程。在

通俗地說邏輯迴歸【Logistic regression演算法

在說邏輯迴歸前,還是得提一提他的兄弟,線性迴歸。在某些地方,邏輯迴歸演算法和線性迴歸演算法是類似的。但它和線性迴歸最大的不同在於,邏輯迴歸是作用是分類的。 還記得之前說的嗎,線性迴歸其實就是求出一條擬合空間中所有點的線。邏輯迴歸的本質其實也和線性迴歸一樣,但它加了一個步驟,邏輯迴歸使用sigmoid函式轉換線

通俗地說邏輯迴歸【Logistic regression演算法sklearn邏輯迴歸實戰

前情提要: 通俗地說邏輯迴歸【Logistic regression】演算法(一) 邏輯迴歸模型原理介紹 上一篇主要介紹了邏輯迴歸中,相對理論化的知識,這次主要是對上篇做一點點補充,以及介紹sklearn 邏輯迴歸模型的引數,以及具體的實戰程式碼。 1.邏輯迴歸的二分類和多分類 上次介紹的邏輯迴歸的內容,基本

廣義線性迴歸邏輯斯諦迴歸 Logistic Regression

廣義線性模型 邏輯斯諦迴歸概念可以認為是屬於廣義線性迴歸的範疇,但它是用來進行分類的。 線性模型的表示式為: f (

【Tensorflow】邏輯斯特迴歸Logistic Regression的簡單實現

Introduction 為了簡單的介紹和講解一下Tensorflow的基本操作, 我決定做一個簡單的邏輯斯特迴歸實現與程式碼講解, 但不太會用Markdown的方式來展現一個JupyterNotebook, 姑且就按照“說明—例項”的方式來解釋逐個程式碼塊好了