मेरा इरादा Bayes Classifier Algorithm के माध्यम से अपनी कक्षा को ढूंढना है।बहुविकल्पीय कर्नेल अनुमान की मेरी गणना में क्या समस्या है?
मान लीजिए, निम्नलिखित प्रशिक्षण डेटा ऊंचाइयों, वजन, और विभिन्न लिंगों के पैर की लंबाई के
SEX HEIGHT(feet) WEIGHT (lbs) FOOT-SIZE (inches)
male 6 180 12
male 5.92 (5'11") 190 11
male 5.58 (5'7") 170 12
male 5.92 (5'11") 165 10
female 5 100 6
female 5.5 (5'6") 150 8
female 5.42 (5'5") 130 7
female 5.75 (5'9") 150 9
trans 4 200 5
trans 4.10 150 8
trans 5.42 190 7
trans 5.50 150 9
अब, मैं करने के लिए निम्नलिखित गुण (परीक्षण डाटा) के साथ एक व्यक्ति का परीक्षण करना चाहते का वर्णन करता है उसकी/उसके लिंग,
HEIGHT(feet) WEIGHT (lbs) FOOT-SIZE (inches)
4 150 12
यह लगता है यह भी एक बहु पंक्ति मैट्रिक्स हो सकता है।
मान लीजिए, मैं केवल पुरुष डेटा के भाग को अलग करने और एक मैट्रिक्स में यह व्यवस्था करने में सक्षम हूँ,
और, मैं निम्नलिखित खिलाफ अपनी Parzen Density Function लगाना चाहते हैं पंक्ति मैट्रिक्स जो किसी अन्य व्यक्ति (पुरुष/महिला/ट्रांसजेंडर) के समान डेटा का प्रतिनिधित्व करता है,
(dataPoint
में कई पंक्तियां हो सकती हैं।)
ताकि हम उन पुरुषों के साथ इस डेटा से कितनी बारीकी से मेल खा सकें।
मेरी प्रयास किया समाधान:
(1) मैं मैट्रिक्स के आयामी बेमेल की वजह से secondPart
गणना करने में असमर्थ हूँ। मैं इसे कैसे ठीक कर सकता हूं?
(2) क्या यह दृष्टिकोण सही है?
MATLAB कोड
male = [6.0000 180 12
5.9200 190 11
5.5800 170 12
5.9200 165 10];
dataPoint = [4 150 2]
variance = var(male);
parzen.m
function [retval] = parzen (male, dataPoint, variance)
clc
%male
%dataPoint
%variance
sub = male - dataPoint
up = sub.^2
dw = 2 * variance;
sqr = sqrt(variance*2*pi);
firstPart = sqr.^(-1);
e = dw.^(-1)
secPart = exp((-1)*e*up);
pdf = firstPart.* secPart;
retval = mean(pdf);
bayes.m
function retval = bayes (train, test, aprori)
clc
classCounts = rows(unique(train(:,1)));
%pdfmx = ones(rows(test), classCounts);
%%Parzen density.
%pdf = parzen(train(:,2:end), test(:,2:end), variance);
maxScore = 0;
pdfProduct = 1;
for type = 1 : classCounts
%if(type == 1)
clidxTrain = train(:,1) == type;
%clidxTest = test(:,1) == type;
trainMatrix = train(clidxTrain,2:end);
variance = var(trainMatrix);
pdf = parzen(trainMatrix, test, variance);
%dictionary{type, 1} = type;
%dictionary{type, 2} = prod(pdf);
%pdfProduct = pdfProduct .* pdf;
%end
end
for type=1:classCounts
end
retval = 0;
endfunction
क्या आप बता सकते हैं कि आप पहले लिंक में दिए गए दृष्टिकोण का पालन कर रहे हैं, यानी, आप उस पृष्ठ के नीचे कोड को दोहराने की कोशिश कर रहे हैं (इच्छा है कि मैं उत्तर देने से पहले ...) – Oleg