機器學習(一) matlab邏輯回歸

2021-09-19 03:12:20 字數 2064 閱讀 9404

最近開了新的坑 emmmmmm這個坑有點深

目前學到的機器學習都是給定一類資料,然後對其進行**。對於**演算法,其基本思想就是設定一條曲線或直線,計算其值與對應的訓練集中的值的差的平方,對各個點的平方進行相加。最終取和最小的乙個值作為最終的結果。這樣就可以保證得到的曲線或直線是最接近實際規律的。

邏輯回歸主要用於分類,即給定兩個型別的資料集,通過演算法將其的劃分線求出。關於邏輯回歸的代價函式如下所示。

這種用log函式表示的形式,可以保障在y=0且h(x)趨近於無窮大時,j為0,h(x)趨近於0時,j為1。在y=1時相反。其中對於hx,採用logistic函式,將hx的值限制在1和0之間。其中logistic函式如下所示。

其中logistic函式影象如下所示

可見,可以判斷,當g(z)>0.5時,則判斷結果為類1,小於0.5則結果為類2。因此,g(z)等於0.5時,取得決策邊界。

邏輯回歸下的梯度下降:

首先讀取訓練集

load('ex4x.dat')

load('ex4y.dat')

x = ex4x;

y = ex4y;

將訓練集中對應的點畫出來

pos = find(y == 1); neg = find(y == 0);

plot(x(pos, 1), x(pos, 2), '+'); hold on;

plot(x(neg, 1), x(neg, 2), 'o');

其中,find函式的作用為找到y=1的資料集,並返回其座標。plot函式則用於畫出影象點,其中+代表用+表示,o代表用o表示。

接下來為變數定義

sample_num = length(x);

x = [ones(sample_num, 1), x];

batsize = 10000;

theata = zeros(size(x, 2), 1);

alpha = 0.1;

第二行中,向x中插入第一列,其中全部為1。這是為了實現hx中的常數項,即theta0*1. theata為乙個與x的列數相同的列向量,代表x前的係數,當前將其全部初始化為0. alpha為學習率。

再將x進行歸一化,這是將x變數統一到統一的區間中,這樣得出來的影象更均勻。處理方法為將x中的每個值減去x的平均值再除以其方差,處理方式如下:

x(:, 2) = (x(:, 2) - mean(x(:, 2))) ./ std(x(:, 2));

x(:, 3) = (x(:, 3) - mean(x(:, 3))) ./ std(x(:, 3));

計算代價函式以及梯度下降

for i = 1:batsize

h = 1 ./ (1 + exp(-x * theata));

j(i, 1) = -1/sample_num * (y' * log(h + eps) + (1-y)' * log(1-h+eps));

theata = theata - alpha * x' * (h-y);

end

最後畫出影象

figure,

plot(x(pos, 2), x(pos,3), '+'); hold on

plot(x(neg, 2), x(neg, 3), 'o')

max_value = max(x(:,2));

min_value = min(x(:,2));

x = min_value:0.001:max_value;

y = -(theata(1,1) + theata(2,1) * x) / theata(3,1);

plot(x, y, '-')

結果如下圖所示。

機器學習 邏輯回歸

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

機器學習 邏輯回歸

coding utf 8 import pandas as pd import seaborn as sns from sklearn.model selection import train test split import matplotlib.pyplot as plt 用於畫圖 from ...

機器學習 邏輯回歸

lr指的是logistic regression,邏輯回歸。而不是linear regression,線性回歸,不要問為什麼,記住它就好了,haha。它是一種監督學習分類演算法,不是回歸演算法!這裡千萬要注意啦。lr常用於二分類問題,0或者1 假如我們有一堆二維資料,也就是這堆資料有2個特徵x1和x...