線性模型 邏輯回歸

2021-08-17 08:51:46 字數 3341 閱讀 7407

模型原型

class sklearn.linear_model.logisticregression(penalty=』l2』,dual=false,tol=0.0001,c=1.0,fit_intercept=true,intercept_scaling=1, class_weight=none,random_state=none,solver=』liblinear』,max_iter=100,multi_class=』ovr』,verbose=0,warm_start=false,n_jobs=1)

引數

l1:優化目標函式:12

||w→

||22

+cl(

w→),

c>0,

l(w)

為極大似

然函式 12|

|w→|

|22+

cl(w

→),c

>0,

l(w)

為極大似

然函

數l2:優化目標函式:||

w→||

1+cl

(w→)

,c>0,

l(w)

為極大似

然函式 ||w

→||1

+cl(

w→),

c>0,

l(w)

為極大似

然函

數tol

c:指定了罰項係數的倒數,值越小則正則化項越大

fit_intercept

intercept_scaling:降低人造特徵的影響(當solver=』liblinear』時才有意義)

class_weight:

random_state:

solver:小規模資料集使用』liblinear』;大規模資料集使用』sag』;』newton-cg』,』lbfgs』,』sag』只處理penalty=』l2』的情況

max_iter:

multi_class:指定處理多分類問題的策略

verbose:開啟/關閉迭代中間輸出日誌功能

warm_start

n_jobs

屬性

coef_f:權重向量

intercept_:b值

方法

fit(x,y[,sample_weight])

predict(x)

predict_log_proba(x):陣列的元素依次是x**為各個類別的概率的對數值

predict_proba(x):陣列的元素依次是x**為各個類別的概率值

score(x,y[,sample_weight])

import matplotlib.pyplot as plt

import numpy as np

from sklearn import datasets,linear_model,discriminant_analysis,cross_validation

載入資料

def

load_data

(): iris=datasets.load_iris()

x_train=iris.data

y_train=iris.target

return cross_validation.train_test_split(x_train,y_train,test_size=0.25,random_state=0,stratify=y_train)

使用logisticregression

def

test_logisticregression

(*data):

x_train,x_test,y_train,y_test=data

regr=linear_model.logisticregression()

regr.fit(x_train,y_train)

print('coefficients:%s,\nintercept %s'%(regr.coef_,regr.intercept_))

print('score:%.2f'%regr.score(x_test,y_test))

x_train,x_test,y_train,y_test=load_data()

test_logisticregression(x_train,x_test,y_train,y_test)

multi_class引數的影響

def

test_logisticregression_multinomial

(*data):

x_train,x_test,y_train,y_test=data

regr=linear_model.logisticregression()

regr.fit(x_train,y_train)

print('cofficients:%s,\nintercept %s'%(regr.coef_,regr.intercept_))

print('score:%.2f'%regr.score(x_test,y_test))

x_train,x_test,y_train,y_test=load_data()

test_logisticregression_multinomial(x_train,x_test,y_train,y_test)

引數c(正則化項係數的倒數)的影響

def

test_logisticregression_c

(*data):

x_train,x_test,y_train,y_test=data

cs=np.logspace(-2,4,num=100)

scores=

for c in cs:

regr=linear_model.logisticregression(c=c)

regr.fit(x_train,y_train)

#繪圖fig=plt.figure()

ax=fig.add_subplot(1,1,1)

ax.plot(cs,scores)

ax.set_xlabel(r"c")

ax.set_ylabel(r"score")

ax.set_xscale('log')

ax.set_title("logisticregression")

plt.show()

test_logisticregression_c(x_train,x_test,y_train,y_test)

01 線性模型 線性回歸與邏輯回歸

線性模型 試圖學得乙個屬性的線性組合來進行 的函式 f x w 1x 1 w 2x 2 w dx d b 向量模式 f x w tx b 簡單 基本 可解釋性好 可看出每部分屬性所做的貢獻 可用於分類和回歸 多個特徵 h x sum theta ix i theta tx 損失函式mse j the...

線性模型 對數機率回歸 邏輯回歸 演算法

又常常稱為邏輯回歸,邏輯斯諦回歸 如果是分類任務,如何使用線性回歸模型呢?答案在廣義線性模型的公式中,只需要找到乙個單調可微函式將分類任務的真實標記y 與線性回歸模型的 值聯絡起來。考慮二分類任務,輸出 y y in y 線性回歸的 值 z w tx b z w tx b z wtx b 是實值,需...

線性回歸模型 線性回歸模型

回歸的思想和分類有所不一樣,分類輸出的結果為離散的值,回歸輸出的是乙個連續型的值。線性回歸的思想就是試圖找到乙個多元的線性函式 當輸入一組特徵 也就是變數x 的時候,模型輸出乙個 值y h x 我們要求這個 值盡可能的準確,那麼怎麼樣才能做到盡可能準確呢?其中 表示實際值,表示 值 其中 表示實際值...