Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

import numpy as np class Perceptron ( object ) : Perceptron classifier. Parameters - - - - - - - - -

import numpy as np
class Perceptron(object):
"""Perceptron classifier.
Parameters
------------
eta : float
Learning rate (between 0.0 and 1.0)
n_iter : int
Passes over the training dataset.
random_state : int
Random number generator seed for random weight
initialization.
Attributes
-----------
w_ : 1d-array
Weights after fitting.
errors_ : list
Number of misclassifications (updates) in each epoch.
"""
def __init__(self, eta=0.01, n_iter=50, random_state=1):
self.eta = eta
self.n_iter = n_iter
self.random_state = random_state
def fit(self, X, y):
"""Fit training data.
Parameters
----------
X : {array-like}, shape =[n_examples, n_features]
Training vectors, where n_examples is the number of examples and
n_features is the number of features.
y : array-like, shape =[n_examples]
Target values.
Returns
-------
self : object
"""
rgen = np.random.RandomState(self.random_state)
self.w_= rgen.normal(loc=0.0, scale=0.01, size=1+ X.shape[1])
self.errors_=[]
for _ in range(self.n_iter):
errors =0
for xi, target in zip(X, y):
update = self.eta *(self.predict(xi)- target)
self.w_[1:]+= update * xi
self.w_[0]+= update
errors += int(update !=0.0)
self.errors_.append(errors)
###### New code for doing nothing. - MEH
this_code_does_nothing = True
######
return self
def net_input(self, X):
"""Calculate net input"""
return np.dot(X, self.w_[1:])+ self.w_[0]
def predict(self, X):
"""Return class label after unit step"""
return np.where(self.net_input(X)>=0.0,1,-1)
There is a significant error in the above perceptron implementation. Work on the above cell and modify the code so that:
(i) The line containing the error is commented out, and a new line is added with corrected code.
(ii) The fit function stops when no more iterations are necessary.
(iii) The trained perceptron contains as an attribute not only its weights, but also the number of iterations it took for training.
(iv) The perceptron maintains a history of its weights, i.e. the set of weights after each point is processed.
At each place where you have modified the code, please add clear comments surrounding it, similarly to the "do-nothing" code. Make sure you evaluate the cell again, so that following cells will be using the modified perceptron.

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Transactions On Large Scale Data And Knowledge Centered Systems Iv Special Issue On Database Systems For Biomedical Applications Lncs 6990

Authors: Abdelkader Hameurlain ,Josef Kung ,Roland Wagner ,Christian Bohm ,Johann Eder ,Claudia Plant

2011th Edition

3642237398, 978-3642237393

More Books

Students also viewed these Databases questions

Question

Find dy/dx if x = te, y = 2t2 +1

Answered: 1 week ago