1. 程式人生 > >機器學習Python實現之線性模型

機器學習Python實現之線性模型

本文將詳細解釋線性分類的幾個常用模型:線性迴歸、對數迴歸、對數機率迴歸,並簡要介紹其優化方法。文末附有Python程式碼實現。如果問題,歡迎留言交流~

線性迴歸(linear regression)

模型

設樣本表示為d維列向量x,其標記為y,記x^=(x1),線性迴歸的基本模型:y=f(x)=wTx+b=w^Tx^
X^=xT0xT1...xTn1111,即每行是一個x^T。則給定w^,訓練集上的損失函式為:X^w^Y2,優化目標argminw^X^w^Y2

  • 閉式解方法:w^=(X^TX^)1X^TY
  • 梯度下降方法:w^t+1=
    w^tγtX^T(X^w^tY)

程式碼引數

在文末的程式碼中,regression.py檔案中的linear_regression(X,Y,method)函式用於線性迴歸。該函式求解了argminw^X^w^Y2問題。
引數

  • X:訓練樣本的矩陣表示末尾新增全1的一列,即上文中的X^
  • Y:標記(label)的矩陣表示(n×1維,n為樣本個數);
  • method:方法引數,字串,若為cloesd_form,則用閉式解方法求解。 若為gd,則用梯度下降方法求解,如果不想使用梯度下降的預設值,還可以設定gamma eps max_iter等引數,分別表示梯度下降等步長係數,終止條件,最大迭代次數。

返回

  • 迴歸係數w^,為列向量。

對數迴歸(log regression)

模型

注意!對數迴歸不是對數機率迴歸!
對數迴歸的模型很簡單,lny=w^Tx^,求解時,只需將真實標記取對數,即可按照線性迴歸模型來做。注意,此時要求標記y>0

程式碼

在文末的程式碼中,regression.py檔案中的log_regression(X,Y,method)函式用於線性迴歸。該函式求解了argminw^X^w^lnY2問題。
引數

  • X:訓練樣本的矩陣表示末尾新增全1的一列,即上文中的X^
  • Y:標記(label)的矩陣表示(n×1維,n為樣本個數);
  • method:方法引數,字串,若為cloesd_form,則用閉式解方法求解。 若為gd,則用梯度下降方法求解,如果不想使用梯度下降的預設值,還可以設定gamma eps max_iter等引數,分別表示梯度下降等步長係數,終止條件,最大迭代次數。

返回

  • 迴歸係數w^,為列向量。

對數機率迴歸(logistic regression)

模型

對數機率迴歸模型相對複雜,針對二分類問題,標記為1或者0:p(y=1|x)=11+exp(w^Tx^)。可以變化為ln

相關推薦

機器學習Python實現線性模型

本文將詳細解釋線性分類的幾個常用模型:線性迴歸、對數迴歸、對數機率迴歸,並簡要介紹其優化方法。文末附有Python程式碼實現。如果問題,歡迎留言交流~ 線性迴歸(linear regression) 模型 設樣本表示為d維列向量x,其標記為y,記x

機器學習Python實現AdaBoost

出了 .py learn tle 基礎 向量 adsi pad del adaboost是boosting方法多個版本號中最流行的一個版本號,它是通過構建多個弱分類器。通過各個分類器的結果加權之後得到分類結果的。這裏構建多個分類器的過程也是有講究的,通過關註之前構建的分

機器學習(三)——線性模型

過去的一週可以說是十分痛苦,一方面工作強度上來了,另一方面生活上遇到的麻煩事,感覺人生觀都受到了衝擊,本來說好的每週寫兩篇部落格,這週一篇也沒有寫出來,這裡自己做一個檢討!以後一定把那個女人給忘掉,繼續開始我的屌絲生活。 這是我的第一篇用MarkDown寫的部

機器學習實戰-正則線性模型

縮放 範數 函數 正常 還需 梯度 http 分類器 大牛   這裏討論的問題是如何減少模型的過度擬合。一般地,對模型加上約束,也就是正則化,它的自由度越低,就越不容易過度擬合數據,比如對多項式模型來說,減低多項式模型的階數就是一種正則化。正則化是一類方法,不是

機器學習降維線性判別分析

1. LDA描述 線性判別分析(Linear Discriminant Analysis,LDA)是一種有監督學習演算法,同時經常被用來對資料進行降維,它是Ronald Disher在1936年發明的,有些資料上也稱位Fisher LDA.LDA是目前機器學習、資料探勘領域中經典且熱門的一種演算法 相比於PC

CS229機器學習課程筆記---監督學習線性模型

監督學習 首先,我們考慮以下資料集,基於此資料集預測房價。 可以畫出如下散點圖: 定義符號 m — 訓練集樣本總數 x — 輸入變數/輸入特徵 (例,living area) y — 輸出/目標變數(例,price) { (x(i),y(i)) ;i =

機器學習實踐系列 1 線性代數計算的python實現

在深入學習機器學習,開啟人工智慧演算法設計之前,有許多需要事先掌握的知識,最重要的是數學知識和程式設計能力,而且要把這兩者有機結合起來,以備今後實現各類演算法做好準備。 python是如今廣為傳頌的科學計算程式開發語言,有優勢或缺點在這裡不想追溯,畢竟沒有一種

機器學習:交叉驗證和模型選擇與Python程式碼實現

前言:本篇博文主要介紹交叉驗證(cross validation)和模型選擇,首先介紹相關的基礎概念和原理,然後通過Python程式碼實現交叉驗證和模型評估以及選擇。特別強調,其中大多理論知識來源於《統計學習方法_李航》和斯坦福課程翻譯筆記。 1.分類器的評價 評價分類

機器學習演算法入門(一) 梯度下降法實現線性迴歸

1. 背景 線性迴歸的目標很簡單,就是用一條線,來擬合這些點,並且使得點集與擬合函式間的誤差最小。如果這個函式曲線是一條直線,那就被稱為線性迴歸,如果曲線是一條二次曲線,就被稱為二次迴歸。資料來自於GradientDescentExample中的data.

機器學習——手把手教你用Python實現迴歸樹模型

本文始發於個人公眾號:**TechFlow**,原創不易,求個關注 今天這篇是機器學習專題的第24篇文章,我們來聊聊迴歸樹模型。 所謂的迴歸樹模型其實就是用樹形模型來解決迴歸問題,樹模型當中最經典的自然還是決策樹模型,它也是幾乎所有樹模型的基礎。雖然基本結構都是使用決策樹,但是根據預測方法的不同也可

機器學習python實戰----線性回歸

pyplot 理論 普通 遍歷 sca def blog reg .so 一、綱要   線性回歸的正規方程解法   局部加權線性回歸 二、內容詳述   1、線性回歸的正規方程解法   線性回歸是對連續型的數據進行預測。這裏討論的是線性回歸的例子,對於非線性回歸先不做討論。這

【黎明傳數==>機器學習速成寶典】模型篇05——樸素貝葉斯【Naive Bayes】(附python代碼)

pytho res tex 機器學習 樸素貝葉斯 spa 什麽 之一 類別 目錄   先驗概率與後驗概率   什麽是樸素貝葉斯   模型的三個基本要素   構造kd樹   kd樹的最近鄰搜索   kd樹的k近鄰搜索   Python代碼(sklearn庫) 先

機器學習-Python中訓練模型的保存和再使用

ext model job 模型保存 PE dir code pre del 模型保存 BP:model.save(save_dir) SVM: from sklearn.externals import joblib joblib.dump(clf, save_dir)

[機器學習python實踐(5)]Sklearn實現集成

ace 訓練 存在 edi 每一個 predict utf-8 avg score 1,集成 集成(Ensemble)分類模型是綜合考量多個分類器的預測結果,從而做出決策。一般分為兩種方式:1)利用相同的訓練數據同時搭建多個獨立的分類模型,然後通過投票的方式,以少數服從多數

掌握Spark機器學習庫-07.6-線性回歸實現房價預測

linear 線性 ack transform regress build count random () 數據集 house.csv 數據概覽 代碼 package org.apache.spark.examples.examplesforml import org

sklearn庫學習線性模型

線性模型利用輸入特徵的線性函式進行預測,學習線性模型的演算法的區別: (1)係數和截距的特定組合對訓練資料擬合好壞的度量方法,不同的演算法使用不同的方法度量“對訓練集擬合好壞”–稱為損失函式 (2)是否使用正則化,使用哪種正則化方法 線性模型的主要引數是正則化引數,如果假定只有幾個特徵是

機器學習演算法實現解析——liblbfgsL-BFGS演算法

在博文“優化演算法——擬牛頓法之L-BFGS演算法”中,已經對L-BFGS的演算法原理做了詳細的介紹,本文主要就開原始碼liblbfgs重新回顧L-BFGS的演算法原理以及具體的實現過程,在L-BFGS演算法中包含了處理L1正則的OWL-QN演算法,對於OWL-QN演算法的詳細原理,可以參見

機器學習三要素資料、模型、演算法

一般一個模型是通過如下過程獲得: 即演算法通過在資料上進行運算產生模型。 下面我們從資料,模型,演算法上來深入分析機器學習的過程。 資料 我們都知道,機器學習需要大量的資料來訓練模型,尤其是訓練神經網路。在進行機器學習時,資料集一般會被劃分為訓練集和測試集,很

機器學習演算法實現】主成分分析 PCA ——基於python+numpy

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

機器學習演算法實現】logistic迴歸 基於Python和Numpy函式庫

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!