Klasifikasi Bunga Iris

RB Fajriya Hakim
2 min readDec 4, 2022

--

menggunakan ANN — Keras python

Asssalamu’alaikum teman=teman data

Kali ini akan dilakukan klasifikasi bunga Iris menggunakan Artificial Neural Network dengan modul Keras Python.

Kita install terlebih dulu keperluan librarynya

import numpy as np

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import OneHotEncoder

from keras.models import Sequential
from keras.layers import Dense
from keras.optimizers import Adam

kemudian kita persiapkan data nya


iris_data = load_iris()

print('Example data: ')
print(iris_data.data[:5])
print('Example labels: ')
print(iris_data.target[:5])

x = iris_data.data
y_ = iris_data.target.reshape(-1, 1) # konversi data ke kolom tunggal

# data spesies bunga iris dibuat menjadi kategorik
encoder = OneHotEncoder(sparse=False)
y = encoder.fit_transform(y_)
#print(y)

# Split the data for training and testing
train_x, test_x, train_y, test_y = train_test_split(x, y, test_size=0.20)

kemudian membangun model jaringan syaraf (neural network) nya

model = Sequential()

model.add(Dense(10, input_shape=(4,), activation='relu', name='fc1'))
model.add(Dense(10, activation='relu', name='fc2'))
model.add(Dense(3, activation='softmax', name='output'))

kemudian menyusun model dengan optimizer dan loss nya

# Adam optimizer with learning rate of 0.001
optimizer = Adam(lr=0.001)
model.compile(optimizer, loss='categorical_crossentropy', metrics=['accuracy'])

print('Neural Network Model Summary: ')
print(model.summary())

saatnya model di training

# Train the model
model.fit(train_x, train_y, verbose=2, batch_size=5, epochs=100)

kemudian

results = model.evaluate(test_x, test_y)

print('Final test set loss: {:4f}'.format(results[0]))
print('Final test set accuracy: {:4f}'.format(results[1]))

kemudian kita coba memprediksikan dengan bunga baru

x_coba = [[5.1, 3.5, 1.4, 0.2]]
model.predict(x_coba)

menghasilkan seperti berikut,

1/1 [==============================] - 0s 65ms/step
array([[9.9746847e-01, 2.5315289e-03, 2.3805711e-11]], dtype=float32)

atau bisa terbaca (0.9, 0.0025, 0.000000000023) sehingga bunga baru diklasifikasikan sebagai setosa

terimakasih

--

--