Ứng dụng CNN phân loại Iris dataset

Xử lý dữ liệu:

import numpy as np
import pandas as pd
from keras.utils import to_categorical

#Import datasetdataset = pd.read_csv('dataset.csv')
X = dataset.iloc[:,:-1].values
y = dataset.iloc[:,-1].values

#Endcoding categorial datafrom sklearn.preprocessing import LabelEncoder, OneHotEncoder
labelendcoder_X_lastcol = LabelEncoder()
y = labelendcoder_X_lastcol.fit_transform(y)
y = pd.get_dummies(y).values

#split dataset to train and testfrom sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X,y,test_size = 0.2, random_state= 0)

#feature scalingfrom sklearn.preprocessing import  StandardScaler
sc =StandardScaler()
X_train = sc.fit_transform(X_train)
X_test = sc.fit_transform(X_test)


Build CNN:

# Part 2-make cnnfrom keras.models import Sequential
from keras.layers import Dense
from keras.optimizers import Adam

classifier = Sequential()
classifier.add(Dense(10,input_shape=(4,), activation='tanh'))
classifier.add(Dense(8, activation='tanh'))
classifier.add(Dense(6, activation='tanh'))
classifier.add(Dense(3, activation='softmax'))
classifier.compile(Adam(lr=0.04),'categorical_crossentropy', metrics=['accuracy'])


Fit CNN:

#fitting the model and predictingclassifier.fit(X_train,y_train,epochs=100)
y_pred = classifier.predict(X_test)

y_test_class = np.argmax(y_test,axis=1)
y_pred_class = np.argmax(y_pred,axis=1)


Accurancy:

#Accuracy of the predicted valuesfrom sklearn.metrics import classification_report,confusion_matrix
print(classification_report(y_test_class,y_pred_class))
print(confusion_matrix(y_test_class,y_pred_class))

Kết quả:


Activation function-Hàm kích hoạt
signmoid: phù hợp khi đầu ra là các giá trị nhị phân
tanh: hiệu quả hơn signmod, đầu ra có thể là multiple
ReLU: đây là hàm kích hoạt đầu tiên mà chúng ta nên thử khi thiết kế một multiple neural network

Nhận xét

Bài đăng phổ biến từ blog này

ASP.NET MVC 5- Ứng dụng quản lý sinh viên

Nhận dạng chữ cái viết tay

[Phần 3]: Controllers