Matlab中高斯分布的多元线性回归

问题描述 投票:0回答:0

我正在进行机器学习练习,需要一些帮助来解决以下问题。

模拟两个 i.i.d.大小为 500 和 800 的高斯向量样本:

mu1= [1;3] sigma1=[100 ,24; 24,20]
mu2=[3;-1] sigma2=[40, -10; -10,80]
并计算它们的多元线性回归以找到决策边界。

我尝试通过以下方式做到这一点,但我认为那不是正确的方法,有人可以给我提示吗?

setTimeout(function () { alert("JavaScript"); }, 1000);

%% input
rng(1);
mu1 = [1; 3];
sigma1 = [100 24; 24 20];
data1 = mvnrnd(mu1,sigma1,500);

mu2 = [3; -1];
sigma2 = [40 -10; -10 80];
data2 = mvnrnd(mu2,sigma2,800);

% Concatenate the data and create a binary response variable
X = [data1; data2];
y = [ones(500, 1); zeros(800, 1)];

% Fit the MLR model
mdl = fitlm(X, y);

% Plot the data and decision boundary
figure;
gscatter(X(:,1), X(:,2), y, 'mb', 'o');
hold on;

x1_range = min(X(:,1)):0.1:max(X(:,1));
x2_range = min(X(:,2)):0.1:max(X(:,2));
[x1_grid, x2_grid] = meshgrid(x1_range, x2_range);
X_grid = [x1_grid(:), x2_grid(:)];
y_grid = predict(mdl, X_grid);

L = mvnpdf(X_grid,mu1',sigma1)./mvnpdf(X_grid,mu2',sigma2);
L = reshape(L,size(x1_grid));
contour(x1_grid,x2_grid,L,[1 1],'k','LineWidth',1)
contour(x1_grid, x2_grid, reshape(y_grid, size(x1_grid)), 
[0.5, 0.5], 'LineColor', 'k', 'LineWidth', 1);
title('MLR Decision Boundary');
legend('Class 1', 'Class 2', 'Decision boundary', 'Location', 'Best');
axis([min(X(:,1)) max(X(:,1)), min(X(:,2)) max(X(:,2))]);
matlab machine-learning
© www.soinside.com 2019 - 2024. All rights reserved.