機器學習(二) 邏輯回歸 python

2021-07-24 05:57:56 字數 2886 閱讀 5260

由於公式使用的是latex,解析使用的google的chart api,所以顯示有問題,可以移步github)

可以看出,當1y=1,與**值一致,此時付出的代價cost趨於0,若0y=1,此時的代價cost值非常大,我們最終的目的是最小化代價值

- 同理y=0):

# 代價函式

defcostfunction

(initial_theta,x,y,inital_lambda):

m = len(y)

j = 0

h = sigmoid(np.dot(x,initial_theta)) # 計算h(z)

theta1 = initial_theta.copy() # 因為正則化j=1從1開始,不包含0,所以複製乙份,前theta(0)值為0

theta1[0] = 0

temp = np.dot(np.transpose(theta1),theta1)

j = (-np.dot(np.transpose(y),np.log(h))-np.dot(np.transpose(1-y),np.log(1-h))+temp*inital_lambda/2)/m # 正則化的代價方程

return j

# 計算梯度

defgradient

(initial_theta,x,y,inital_lambda):

m = len(y)

grad = np.zeros((initial_theta.shape[0]))

h = sigmoid(np.dot(x,initial_theta))# 計算h(z)

theta1 = initial_theta.copy()

theta1[0] = 0

grad = np.dot(np.transpose(x),h-y)/m+inital_lambda/m*theta1 #正則化的梯度

return grad

# s型函式    

defsigmoid

(z):

h = np.zeros((len(z),1)) # 初始化,與z的長度一置

h = 1.0/(1.0+np.exp(-z))

return h

# 對映為多項式 

defmapfeature

(x1,x2):

degree = 3; # 對映的最高次方

out = np.ones((x1.shape[0],1)) # 對映後的結果陣列(取代x)

''' 這裡以degree=2為例,對映為1,x1,x2,x1^2,x1,x2,x2^2

'''for i in np.arange(1,degree+1):

for j in range(i+1):

temp = x1**(i-j)*(x2**j) #矩陣直接乘相當於matlab中的點乘.*

out = np.hstack((out, temp.reshape(-1,1)))

return out

result =optimize.fmin_bfgs(costfunction, initial_theta, fprime=gradient, args=(x,y,initial_lambda))
from sklearn.linear_model import logisticregression

from sklearn.preprocessing import standardscaler

from sklearn.cross_validation import train_test_split

import numpy as np

# 劃分為訓練集和測試集

x_train,x_test,y_train,y_test = train_test_split(x,y,test_size=0.2)

# 歸一化

scaler = standardscaler()

scaler.fit(x_train)

x_train = scaler.fit_transform(x_train)

x_test = scaler.fit_transform(x_test)

#邏輯回歸

model = logisticregression()

model.fit(x_train,y_train)

# **

predict = model.predict(x_test)

right = sum(predict == y_test)

predict = np.hstack((predict.reshape(-1,1),y_test.reshape(-1,1))) # 將**值和真實值放在一塊,好觀察

print predict

print ('測試集準確率:%f%%'%(right*100.0/predict.shape[0])) #計算在測試集上的準確度

機器學習 邏輯回歸 Python實現邏輯回歸

coding utf 8 author 蔚藍的天空tom import numpy as np import os import matplotlib.pyplot as plt from sklearn.datasets import make blobs global variable path...

python 邏輯回歸分類 機器學習 邏輯回歸分類

分類問題 1 本質 決策面 decision su ce 2 評估分類演算法的指標,正確率 正確分類個數 總數 二分分類 邏輯回歸輸入 訓練資料的特徵和標籤 模型 邏輯回歸 輸出 分類結果 什麼是邏輯函式?在0到1之間取值,邏輯回歸是因為引數是邏輯函式 邏輯的數值 表示分類結果是1是y的結果 決策面...

機器學習 邏輯回歸

邏輯回歸 線性回歸的式子,作為邏輯回歸的輸入 適用場景 二分類 線性回歸的輸入 sigmoid函式 分類 0,1 概率值 計算公式 當目標值為1時 損失函式的變化 當目標值為0時 損失函式的變化 下面用乙個例項來說明邏輯回歸的用法 癌症概率 部分資料的截圖如下 資料描述 699條樣本,供11列資料,...