پاسخ تمرین ۴(تخمین میانگین و واریانس با تخمین گر ML)

یادآوری تخمین گر ML و طرح مسئله

 در بخش قبل درباره ی  تخمین گر ML صحبت کردیم. در این بخش همچنین تمرینی مطرح شد که هدف این بود که مقدار میانگین و واریانس را برای pdf گوسی تخمین بزنیم. همانطور که در این بخش گفته شد، میانگین و واریانس بصورت زیر تخمین زده میشوند:

 

تخمین ML برای میانگین کلاس

تخمین ML برای میانگین کلاس

تخمین ML برای ماتریس کوواریانس

تخمین ML برای ماتریس کوواریانس

 

توضیح کد متلب

در این بخش کد مربوط به این مسئله قرار داده شده است. ابتدا با دستور mvnrnd و با در دست داشتن میانگین(m) و ورایانس (S)، باید ۵۰ دیتای دوبعدی تولید کنیم. بعد از آن با استفاده از فرمول هایی که در بالا مطرح شده  تخمین های میانگین(m_hat) و واریانس(S_hat) را بدست می آوریم(با مقادیر واقعی(mو S) نیز مقایسه کنید). در واقع با این عمل توانستیم مقدار میانگین و واریانس را برای pdf گوسی(که در عمل نامعلوم هستند) را تخمین بزنیم. توجه داشته باشید که همانطور که در اینجا   و اینجا مطرح شد، برای اینکه بتوانیم داده ها را به روش های مختلف کلاس بندی کنیم باید میانگین و واریانس توزیع را داشته باشیم که با روشی که در این بخش مطرح شد براحتی این کار امکان پذیر است. در پایان این بخش می توانید کد مربوطه(به فرمت mat.) را در قالب فایل زیپ دانلود کنید.

 

%%matlabkhoone
%%tamrin4

clc;
clear all;
close all;
%% genrate 50 random data
m = [2 -2]; S = [0.9 0.2; 0.2 .3];
X = mvnrnd(m,S,50)’; %%2D feature vector

% Compute the ML estimates of m and S
[l,N]=size(X);
m_hat=(1/N)*sum(X’)’; %% estimated mean

m_hat_rep=repmat(m_hat,1,N);
S_hat=(1/N)*(X-m_hat_rep)*(X-m_hat_rep)’;%% estimated variance

 

 

لینک دانلود کد متلب


 

اولین کانال آموزش رایگان دروس مربوط به رشته ی مهندسی پزشکی

 لینک کانال  

سوالات و دیدگاه خود را درباره ی این پست با ما درمیان بگذارید

پاسخ تمرین ۳(کلاس بندی با فاصله ی اقلیدسی و فاصله ی ماهالونوبیس)

 کلاس بندی با فاصله ی اقلیدسی و فاصله ی ماهالونوبیس

در این تمرین که در اینجا مطرح شد هدف این بود که یک داده را براساس فاصله ی اقلیدسی و فاصله ی ماهالونوبیس کلاس بندی کنیم. فرمول ها مربوط به این دو کلاسیفابر قبلا گقته شد. در این تمرین باید فاصله ی داده را تا مرکز هر کلاس بدست بیاوریم و به هر کلاس که نزدیک تر باشد متعلق به آن کلاس است.

کد مربوط به این تمرین بصورت زیر است. درصورتی که هر سوالی درباره این کد داشتین در قسمت دیدگاه مطرح کنید. در اسرع وقت پاسخ داده خواهد شد.

 

 

matlabkhoone.ir%%
%%tamrin3

clc;clear all;close all;

m1=[0 0 0]’; %%mean of class1
m2=[0.5 0.5 0.5]’; %%mean of class2
S=[0.8 0.01 0.01;0.01 0.2 0.01;0.01 0.01 0.2];%% standard devision

X=[0.1 0.5 0.1]’;

%% euclidean_classifier
dis1=sqrt((X-m1)’*(X-m1));
dis2=sqrt((X-m2)’*(X-m2));

if dis1<dis2
disp(‘x belongs to class1(euclidean_classifier)’)
else
disp(‘x belongs to class2(euclidean_classifier)’)
end

%% mahalanobis_classifier
diss1=sqrt((X-m1)’*inv(S)*(X-m1));
diss2=sqrt((X-m2)’*inv(S)*(X-m2));

if diss1<diss2
disp(‘x belongs to class1(mahalanobis_classifier)’)
else
disp(‘x belongs to class2(mahalanobis_classifier)’)

end

لینک دانلود کد متلب


اولین کانال آموزش رایگان دروس مربوط به رشته ی مهندسی پزشکی

 لینک کانال  

سوالات و دیدگاه خود را درباره ی این پست با ما درمیان بگذارید

پاسخ تمرین ۲(کلاس بندی با تئوری تصمیم گیری بیزین)

در تمرین ۲ که در اینجا مطرح شده، هدف کلاس بندی داده براساس تئوری تصمیم گیری بیزین بود. با توجه به فرمول مطرح شده در این بخش که بصورت زیر است:

و با این دانش که داده به کلاسی تعلق میگیرید که احتمال پاستریور بیشتری داشته باشد، کد مربوط به این سوال بصورت زیر است:

%%www.matlabkhoone.ir

%% example 1.3.2 %%
clc;clear all;close all;
m1=[1,1]’;m2=[3,3]’;%% mean of class 1 and class2
P1=0.5;P2=0.5;%%prior probability of class1 and class2
s1=eye(2); s2=eye(2);%% standard devision of class1 and class2
class1=zeros(1,1);
class2=zeros(1,1);
x=[1.8,1.8]’;
for i=1:2
p(i)= P1*(1/(2*pi*sqrt(det(s1))))*exp(-0.5*(x-m1)’*inv(s1)*(x-m1));%%posterior probability
m1=m2;
P1=P2;
end
if p(1)>p(2)
class1=x;
else
class2=x;

end

 

دریافت کد متلب

 


اولین کانال آموزش رایگان دروس مربوط به رشته ی مهندسی پزشکی

 لینک کانال  

سوالات و دیدگاه خود را درباره ی این پست با ما درمیان بگذارید

پاسخ تمرین ۱(یافتن pdf گوسی)

در این تمرین(که در اینجا مطرح شده است) هدف یافتن تابع توزیع گوسی و یا بعبارت دیگر تابع توزیع نرمال، براساس اطلاعات مطرح شده در صورت مسئله بود. با توجه به اینکه تابع توزیع نرمال برای حالت یک بعدی بصورت زیر تعریف میشود:


میتوانیم کد مربوط به این تابع را بصورت زیر داشته باشیم:

%% Compute the value of a Gaussian pdf%%
%%p:the value of a Gaussian pdf, N(m,S ), at x1 , x2

clc;clear all;close all;
m=[0,1]’; %% mean
sigma=[1 0;0 1];%%standard devision
x1=[0.2,1.3]’;%% feature vector1
x2=[2.2,-1.3]’;%% feature vector2
for i=1:2
p(i)= (1/(2*pi*sqrt(det(sigma))))*exp(-0.5*(x1-m)’*inv(sigma)*(x1-m));
x1=x2;
end

دریافت کد متلب


اولین کانال آموزش رایگان دروس مربوط به رشته ی مهندسی پزشکی

لینک کانال

سوالات و دیدگاه خود را درباره ی این پست با ما درمیان بگذارید