NG 邏輯回歸 二分類

2021-08-07 08:37:51 字數 1679 閱讀 3038

import time

import numpy as np

import pandas as pd

import matplotlib.pyplot as plt

a = pd.read_table('01.txt',header=none,usecols = (0,1,2))

# 插入一列 1

a.insert(0,'insert',1)

# 規劃一 特徵值調整到 0-1

# a.iloc[:,1]=(a.iloc[:,1]-a.iloc[:,1].mean() )/(a.iloc[:,1].max()-a.iloc[:,1].min())

# a.iloc[:,2]=(a.iloc[:,2]-a.iloc[:,2].mean() )/(a.iloc[:,2].max()-a.iloc[:,2].min())

x = np.mat(a.iloc[:,:3])

y = np.mat(a.iloc[:,3]).t

m,n = x.shape

# 初始引數

params = np.mat([1.0,1.0,1.0]).t

alpha = 0.001 #學習率

times = 1000 #迭代次數

# sigmoid 函式

def sigmoid(inx):

return 1.0/(1+np.exp(-inx))

j =

# 迭代引數 梯度下降

for i in range(times):

error_col = sigmoid(x*params) - y

params[0] = params[0] - alpha*sum( error_col )

params[1] = params[1] - alpha*sum(np.multiply(error_col,x[:,1]))

params[2] = params[2] - alpha*sum(np.multiply(error_col,x[:,2]))

print(params)

# 視覺化

# 收斂影象

x1 = range(0,times,1) # 起始值 終止值 步長

plt.subplot(121),plt.plot(x1,j,'r--'),plt.title('j - itera'),plt.xlabel('itera times'),plt.ylabel(' j ')

# 擬合函式影象

x2=np.linspace(-4,4,50) #開始值 終止值 元素個數

應用廣泛的二分類演算法 邏輯回歸

對問題劃分層次,並利用非線性變換和線性模型的組合,將未知的複雜問題分解為已知的簡單問題。其原理是將樣本的特徵和樣本發生的概率聯絡起來,即,的是樣本發生的概率是多少。由於概率是乙個數,因此被叫做 邏輯回歸 在回歸問題上再多做一步,就可以作為分類演算法來使用了。邏輯回歸只能解決二分類問題,如果是多分類問...

2 簡單的二分類問題 邏輯回歸

1 資料的分類 結構化資料,可以用 表達描述的資料,計算機對於結構化資料有遠超人類的計算能力 非結構化資料 例如影象,聲音 文字序列等無法直接描述的資料,人類對於非結構化資料天生具有超強的理解能力 2 sigmoid函式 二分類問題分類結果的表達,一般輸出為屬於某一類的概率。在神經網路中,我們不能保...

邏輯回歸 線性二分類和非線性啟用

目錄 背景介紹 邏輯回歸 邏輯回歸屬於線性分類器?神經網路 交叉熵與kl散度 啟用函式 自然邏輯 比如,當已知y的區間為 0,1 時,線性回歸就保證不了 值屬於這個區間。logistic regression 二分類線性分類器。邏輯回歸是個二分類器 binary classification 雖說邏...