SAMI Assignment -2 16/02/2016 1. Which of the following scenario requires the learning approach? (i) Classifying numbers into even and odd. (ii) Detecting potential fraud in online credit card charges. (iii) Determining the time it would take an angry bird to hit the pig at the specified location. (iv) Determining the optimal cycle for traffic lights in a busy intersection. a) b) c) d) e)
(ii) and (iv) (i) and (ii) (i), (ii), and (iii). (iii) (i) and (iii)
Answer: a)
2. What types of learning, if any, best describe the following scenario: A coin classification system has to be created for a vending machine. In order to do this, the engineers obtain exact coin specifications from Reserve Bank of India and derive a statistical model of the size, weight, and denomination, which the vending machine then uses to classify its coins. a) Not Learning b) Supervised c) Unsupervised d) Can’t Say
Answer: a)
3. What types of learning, if any, best describe the following scenario: Instead of calling the Reserve Bank of India to obtain coin information, an algorithm is presented with a large set of labeled coins. The algorithm uses this data to infer decision boundaries which the vending machine then uses to classify its coins. a) Not Learning b) Supervised c) Unsupervised
d) Can’t Say
Answer: b) 4. You are given a trained perceptron classifier where hθ(x) = sign(3 + 6x1 -3x2 ) . which one of the following represents the decision boundary of this classifier. Justify your answer.
a.
b.
14
14
y = -1
12
12
8
8
6
x2
10
x2
10
4
4
2
2 0
2
y = -1
6
y=1
0
y=1
0
x1 4
6
8
0
c. 2
0
0 0
2
4
6
8
-2 -4
-6
-6
2
4
6
6
y = -1
x2
-8
y = -1
-10
-10 -12
0
x2
-4
-8
4
8
d.
2
-2
x1
2
x1
Answer: a) Consider the perceptron network:
-12
x1
8
Output is given by : ai = hardlim(ni) = hardlim(iWTp + b), Where, hardlim is defined as :
The decision boundary is determined by the input vectors for which the net n is zero:
For given problem, n = 3 + 6x1 -3x2 = 0, which is satisfied by option (a).
5. Coin Vending Machine Problem Code for coin Vending: load coins_data_train.txt; load coins_data_test.txt; XTrain=[coins_data_train(:,1) coins_data_train(:,2) ]; yTrain=coins_data_train(:,4); gscatter(XTrain(:,1),XTrain(:,2),yTrain,'br','.*'); title('Scatter Plot for Input data points'); hold on [w, k] = PerceptronTrain(XTrain,yTrain); % training boundary(w,XTrain); % decision boundary plot XTest=[coins_data_test(:,1) coins_data_test(:,2) ]; yTest=coins_data_test(:,4); test_err=PerceptronTest(w, XTest, yTest); % Testing [c_matrix,order]=conf_matx(yTrain,XTrain,w); % confusion Matrix disp('Weight (parameters) matrix is:'); disp(w); disp('Number of updations:') disp(k);
disp('Confusion Matrix is:') disp(c_matrix); disp('Row labels for confusion matrix:') disp(order); disp('Testing error is:') disp(test_err);
Code for perceptronTrain Function: function [w, k] = PerceptronTrain(XTrain,yTrain) [n,d] = size(XTrain); w=ones(d+1,1); %intitial parameters are set to one % w(1,1) is bias k=0;% number of updates iterations = 20; for i = 1:iterations for j = 1:n v=w(1,1)+XTrain(j,1)*w(2,1)+XTrain(j,2)*w(3,1); if v>=0 out=1; else out=-1; end error=yTrain(j)-out; if( error~=0) k=k+1; end w=w+error*[1;XTrain(j,:)']; end end
Code for Boundary line: function boundary(w,XTrain) minimum=min(min(XTrain)); maximum=max(max(XTrain)); x = minimum-1:0.01:maximum+1; m = w(2,1)/w(3,1); c = w(1,1)/w(3,1); y = -(c+m * x) ; plot(x,y,'k');
Code for PerceptronTest: function test_err = PerceptronTest(w, XTest, yTest) m= length(XTest); error=zeros(m,1); for i=1:m v=w(1,1)+XTest(i,1)*w(2,1)+XTest(i,2)*w(3,1); if v>=0 out=1; else out=-1; end error(i,1)=abs(yTest(i)-out); end test_err=sum(error)/m;
Output: