Ứng dụng CNN phân loại Iris dataset
Xử lý dữ liệu:
Build CNN:
Fit CNN:
Accurancy:
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)
#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
Đăng nhận xét