Dalam artikel ini, kita akan melakukan analisis data iris yang terdiri dari variasi kualitatif dan kuantitatif. Iris adalah dataset yang populer digunakan untuk menyelesaikan masalah klasifikasi dalam bidang ilmu komputer.
Tinjauan Awal Data
Sebelum memulai analisis, kita perlu melihat tinjauan awal data. Berikut hasilnya:
Ukuran Data: (150, 5)
Jumlah data Kosong:
Jumlah Kategori Species ['Iris-setosa', 'Iris-versicolor', 'Iris-virginica']
Data iris memiliki ukuran 150 baris dan 5 kolom. Tidak terdapat data yang kosong. Ada tiga kategori species yaitu Iris-setosa, Iris-versicolor, dan Iris-virginica.
Korelasi Variabel
Untuk melihat hubungan antar variabel, kita menggunakan heatmap:
ax = plt.subplots(figsize=(9,6))
sns.heatmap(iris_data.corr(), annot=True, ax=ax)
plt.yticks(rotation=360)
plt.title("Correlation", fontsize=20)
plt.show()
Hasilnya menunjukkan bahwa korelasi variabel sepanjang -1 hingga 1. Korelasi semakin kuat jika mendekati -1 dan 1, serta semakin melemah jika mendekati 0. Jika nilai positif berarti hubungan kedua variabel searah, jika negatif hubungan kedua variabel berbanding terbalik.
Scatter Plot
Kita juga menggunakan scatter plot untuk melihat hubungan antar variabel:
g = sns.FacetGrid(iris, height=5, hue="Species")
g.map(sns.scatterplot, "SepalLengthCm", "SepalWidthCm")
g.add_legend()
Scatter plot menunjukkan bahwa Spesies Iris-setosa cenderung memiliki ukuran Sepal yang lebar tetapi pendek. Sedangkan untuk Iris-virginica cenderung memiliki Sepal yang panjang.
Boxplot
Kita juga menggunakan boxplot untuk melihat persebaran data, median, tingkat kemiringan sebaran (skewness), serta mengetahui ada tidaknya outlier atau pencilan pada suatu data:
fig, axes = plt.subplots(2, 2, figsize=(10, 7))
sns.boxplot(ax=axes[0,0], data=iris, x='Species', y='SepalWidthCm')
sns.boxplot(ax=axes[0,1], data=iris, x='Species', y='SepalLengthCm')
sns.boxplot(ax=axes[1,0], data=iris, x='Species', y='PetalWidthCm')
sns.boxplot(ax=axes[1,1], data=iris, x='Species', y='PetalLengthCm')
Boxplot menunjukkan bahwa data memiliki persebaran yang berbeda-beda antar spesies.
Pembuatan Variabel X dan y
Kita juga perlu membuat variabel X dan y:
X = iris.drop(['Id', 'Species'], axis=1)
y = iris['Species']
print('Jumlah Baris dan kolom pada X:', X.shape)
print('Jumlah Baris dan Kolom pada y:', y.shape)
Variabel X memiliki ukuran 150 baris dan 4 kolom, sedangkan variabel y memiliki ukuran 150 baris dan 1 kolom.
Pembuatan Model
Kita juga perlu membuat model menggunakan regresi logistik dikarenakan variabel yang menjadi target atau variabel y nya yaitu variabel ‘Species’ berbentuk kategorikal yang terdiri dari : Iris-setosa, Iris-versicolor, Iris-virginica.
model = LogisticRegression()
model.fit(X_train, y_train)
prediction = model.predict(X_test)
print('The accuracy of the Logistic Regression is', metrics.accuracy_score(prediction, y_test))
print('\nClassification report:')
cr = classification_report(y_test, prediction)
print(cr)
Model didapatkan tingkat akurasi sebesar 97%. Dari classification report juga menunjukkan rata rata accuracy sebesar 98%, sehingga model dikatakan sudah baik.