Pada pratikum ini, Anda diminta untuk melakukan klasifikasi bunga iris dengan menggunakan model Perceptron. Anda dapat menggunakan dataset iris pada praktikum sebelumnya.
Untuk nembah pemahaman Anda terkait dengan model Perceptron, pada pratkikum ini Anda akan membuat model Perceptron tanpa menggunakan library.
Langkah 1 - Import Library
import numpy as npimport matplotlib.pyplot as pltimport pandas as pdimport seaborn as sns
y = df.iloc[0:100,4].values # pilih 100 data awaly = np.where(y =='Iris-setosa', -1, 1)# ganti coding labelX = df.iloc[0:100, [0,3]].values # slice data latih
Langkah 5 - Fitting Model
ppn =Perceptron(eta=0.1, n_iter=10)ppn.fit(X, y)
Langkah 6 - Visualisasi Nilai Error Per Epoch
plt.plot(range(1, len(ppn.errors_)+1), ppn.errors_)plt.xlabel('Epochs')plt.ylabel('Number of updates')plt.show()
Hasil visualisasi,
Langkah 7 - Visualiasasi Decision Boundary
# buat fungsi untuk plot decision regionfrom matplotlib.colors import ListedColormapdefplot_decision_regions(X,y,classifier,resolution=0.02):# setup marker generator and color map markers = ('s','x','o','^','v') colors = ('r','b','g','k','grey') cmap =ListedColormap(colors[:len(np.unique(y))])# plot the decision regions by creating a pair of grid arrays xx1 and xx2 via meshgrid function in Numpy x1_min, x1_max = X[:,0].min()-1, X[:,0].max()+1 x2_min, x2_max = X[:,1].min()-1, X[:,1].max()+1 xx1, xx2 = np.meshgrid(np.arange(x1_min, x1_max, resolution), np.arange(x2_min, x2_max, resolution))# use predict method to predict the class labels z of the grid points Z = classifier.predict(np.array([xx1.ravel(),xx2.ravel()]).T) Z = Z.reshape(xx1.shape)# draw the contour using matplotlib plt.contourf(xx1, xx2, Z, alpha=0.4, cmap=cmap) plt.xlim(xx1.min(), xx1.max()) plt.ylim(xx2.min(), xx2.max())# plot class samplesfor i, cl inenumerate(np.unique(y)): plt.scatter(x=X[y==cl, 0], y=X[y==cl, 1], alpha=0.8, c=cmap(i), marker=markers[i], label=cl)