Pembahasan Plot Classification Result on Scatter

Pembahasan Plot Classification Result on Scatter

Dalam beberapa posting sebelumnya, kita telah membahas cara membuat plot untuk visualisasi data dalam classification problems menggunakan Python dan Scikit-learn library. Dalam posting ini, kita akan membagikan contoh-contoh bagus untuk membuat plot scatter yang dapat membantu kita untuk melihat struktur kelas dalam dataset.

Contoh 1: Plotting Classification Result on Scatter

Dalam contoh pertama, kita menggunakan data moons dari Scikit-learn library dan melakukan classification menggunakan algoritma decision tree. Berikut adalah kode Python untuk membuat plot scatter:

import numpy as np
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import train_test_split, KFold
import matplotlib.pyplot as plt

# Generate random data
X = np.zeros((100, 2))
X[:, 0] = np.array(list(range(100)))
X[:, 1] = np.array(list(range(100)))
y = list([0] * 50 + [1] * 50)

# Split data into training and testing sets
train_x, test_x, train_y, test_y = train_test_split(X, y, train_size=0.8, shuffle=True)
kf = KFold(n_splits=5)
dtc = DecisionTreeClassifier()
dtc.fit(train_x, train_y)
dtc_labels = dtc.predict(test_x)

# Create scatter plot
plt.scatter(test_x[dtc_labels == 0, 0], test_x[dtc_labels == 0, 1], marker='o', c='blue')
plt.scatter(test_x[dtc_labels == 1, 0], test_x[dtc_labels == 1, 1], marker='o', c='red')
plt.xlabel('Feature 1')
plt.ylabel('Feature 2')
plt.title('Classification Result on Scatter')
plt.show()

Dalam contoh di atas, kita menggunakan data moons sebagai dataset untuk melakukan classification. Data ini terdiri dari dua fitur dan dua kelas. Kita lalu membagi data menjadi training dan testing sets, kemudian melakukan classification menggunakan algoritma decision tree. Akhirnya, kita membuat plot scatter yang menunjukkan distribusi data untuk kedua kelas.

Contoh 2: Plotting Randomly Generated Classification Dataset

Dalam contoh kedua, kita akan membuat plot scatter untuk beberapa dataset classification yang secara acak dihasilkan. Berikut adalah kode Python untuk membuat plot scatter:

import matplotlib.pyplot as plt

from sklearn.datasets import make_classification, make_blobs, make_gaussian_quantiles

plt.figure(figsize=(8, 8))
plt.subplots_adjust(bottom=0.05, top=0.9, left=0.05, right=0.95)

# Create plot for one informative feature and one cluster per class
X1, Y1 = make_classification(
 n_features=2, n_redundant=0, n_informative=1, n_clusters_per_class=1
)
plt.subplot(321)
plt.title("One informative feature, one cluster per class", fontsize="small")
plt.scatter(X1[:, 0], X1[:, 1], marker="o", c=Y1, s=25, edgecolor="k")

# Create plot for two informative features and one cluster per class
X2, Y2 = make_classification(n_features=2, n_redundant=0, n_informative=2)
plt.subplot(322)
plt.title("Two informative features, one cluster per class", fontsize="small")
plt.scatter(X2[:, 0], X2[:, 1], marker="o", c=Y2, s=25, edgecolor="k")

# Create plot for two informative features and two clusters per class
X3, Y3 = make_classification(n_features=2, n_redundant=0, n_informative=2, n_clusters_per_class=2)
plt.subplot(323)
plt.title("Two informative features, two clusters per class", fontsize="small")
plt.scatter(X3[:, 0], X3[:, 1], marker="o", c=Y3, s=25, edgecolor="k")

# Create plot for multi-class and two informative features
X4, Y4 = make_classification(
 n_features=2, n_redundant=0, n_informative=2, n_clusters_per_class=1, n_classes=3
)
plt.subplot(324)
plt.title("Multi-class, two informative features, one cluster", fontsize="small")
plt.scatter(X4[:, 0], X4[:, 1], marker="o", c=Y4, s=25, edgecolor="k")

# Create plot for three blobs
X5, Y5 = make_blobs(n_features=2, centers=3)
plt.subplot(325)
plt.title("Three blobs", fontsize="small")
plt.scatter(X5[:, 0], X5[:, 1], marker="o", c=Y5, s=25, edgecolor="k")

# Create plot for Gaussian divided into three quantiles
X6, Y6 = make_gaussian_quantiles(n_features=2, n_classes=3)
plt.subplot(326)
plt.title("Gaussian divided into three quantiles", fontsize="small")
plt.scatter(X6[:, 0], X6[:, 1], marker="o", c=Y6, s=25, edgecolor="k")

plt.show()

Dalam contoh di atas, kita membuat plot scatter untuk beberapa dataset classification yang secara acak dihasilkan. Kita menggunakan fungsi-fungsi dari Scikit-learn library untuk menggenerate data dan kemudian membuat plot scatter untuk setiap dataset.

Saya harap postingan ini membantu Anda untuk memahami cara membuat plot scatter untuk visualisasi data dalam classification problems menggunakan Python dan Scikit-learn library.

Leave a comment