深度學習(正則化的線性回歸和邏輯回歸)

2021-07-17 04:34:21 字數 2761 閱讀 8656

clear;

clc;

%載入資料

x = load('ex5linx.dat');

y = load('ex5liny.dat');

%顯示原始資料

plot(x,y,'o','markeredgecolor','b','marke***cecolor','r','markersize',10);

%將特徵值變成訓練樣本矩陣

x = [ones(length(x),1),x,x.^2,x.^3,x.^4,x.^5];

[m,n]=size(x);

n=n-1;

%計算引數sidta,並且繪製出擬合曲線

rm=diag([0;ones(n,1)]);%lamda後面的矩陣

lamda=[0 1 10]';

colortype=;

theta=zeros(n+1,3);

xrange=linspace(min(x(:,2)),max(x(:,2)))';

hold on;

for i = 1:3

theta(:,i)=inv(x'*x+lamda(i).*rm)*x'*y;%計算引數sida

norm_sida=norm(theta)

yrange=[ones(size(xrange)) xrange xrange.^2 xrange.^3,...

xrange.^4 xrange.^5]*theta(:,i);

plot(xrange',yrange,strcat(char(colortype(i)),'--'));

hold on

endxlabel('x變數');

ylabel('y變數');

title('資料在不同\lambda取值下的擬合情況');

%匯入資料

x=load('ex5logx.dat');

y=load('ex5logy.dat');

%畫出資料分布圖

plot(x(find(y==1),1),x(find(y==1),2),'o','marke***cecolor','b');

hold on;

plot(x(find(y==0),1),x(find(y==0),2),'r+');

title('logistic regression classifier');

xlabel('x的第一分量');

ylabel('x的第二分量');

x=map_feature(x(:,1),x(:,2));

%%[m,n]=size(x);

%初始化引數

theta=zeros(n,1);

%內聯sigmoid函式

g=inline('1.0 ./ (1.0 + exp(-z))');

%初始化迭代次數

max_iter=10;

j=zeros(max_iter,1);

%初始化正則化引數

lambda=1;

%訓練引數

fori=1:max_iter

%計算損失函式值

z = x * theta;

h = g(z);

j(i)=-1/m*sum(y.*log(h)+(1-y).*log(1-h))...

+lambda/(2*m)*theta'*theta;

%計算梯度和hessian矩陣

% calculate gradient and hessian.

g = (lambda/m).*theta; g(1) = 0; % extra term for gradient

l = (lambda/m).*eye(n); l(1) = 0;% extra term for hessian

grad = ((1/m).*x' * (h-y)) + g;

h = ((1/m).*x' * diag(h) * diag(1-h) * x) + l;

% 牛頓法迭代

theta = theta - h\grad;

end%畫出結果

% here is the grid range

u = linspace(-1, 1.5, 200);

v = linspace(-1, 1.5, 200);

z = zeros(length(u), length(v));

% evaluate z = theta*x over the grid

fori = 1:length(u)

forj = 1:length(v)

z(i,j) = map_feature(u(i),v(j))*theta;

endendz = z';

% plot z = 0

% notice you need to specify the range [0, 0]

contour(u, v, z, [0, 0], 'linewidth', 4)%在z上畫出為0值時的介面,因為為0時剛好概率為0.5,符合要求

機器學習 線性回歸和邏輯回歸

1 線性回歸要求變數服從正態分佈,logistic回歸對變數分布沒有要求。2 線性回歸要求因變數是連續性數值變數,而logistic回歸要求因變數是分型別變數。3 線性回歸要求自變數和因變數呈線性關係,而logistic回歸不要求自變數和因變數呈線性關係 4 logistic回歸是分析因變數取某個值...

線性回歸和邏輯回歸

最近開始學習機器學習,有點心得體會,記錄一下,希望大家批評指正 監督學習 supervised learning 根據已有的資料集,知道輸入和輸出結果之間的關係。根據這種已知的關係,訓練得到乙個最優的模型。也就是說,在監督學習中訓練資料既有特徵 feature 又有標籤 label 通過訓練,讓機器...

線性回歸 和 邏輯回歸

跟著b站乙個小姐姐學的 很不錯 1 什麼是回歸 什麼是分類?簡單來說一般回歸問題在數值上是乙個連續的 而分類問題在數值上一般是離散型的 回歸 回歸模型的更傾向於很小的區域 或者是乙個x對應乙個y 線性回歸就不在討論了 這裡學習一下 邏輯回歸 邏輯回歸 聽起來是回歸 但實際上他是解決分類問題的 是乙個...