Klasifikasi Kanker Payudara
ditulis oleh Kevin Christoper Susena dan Joseph William Santoso
Artikel ini berisi analisa yang telah kami kerjakan mengenai data kanker payudara di Kaggle menggunakan metode KNN. Kanker payudara merupakan tumor ganas yang berkembang pada sel-sel payudara. Kanker ini dapat tumbuh jika terjadi pertumbuhan yang abnormal pada sel payudara.
Kanker payudara sering dimulai terlalu kecil untuk dirasakan. Saat tumbuh, itu bisa menyebar ke seluruh payudara atau ke bagian tubuh lainnya. Hal ini menyebabkan masalah kesehatan yang serius dan dapat menyebabkan kematian. Pada saat seseorang terkena kanker payudara, kita harus mengetahui pada bagian mana kah kanker tersebut berada. Kanker payudara bisa terjadi secara benign dan malignant.
Saat sel tumor kanker payudara normal disebut sebagai tumor Benign, tetapi jika pertumbuhan sel kanker payudaranya abnormal seperti pertumbuhan yang tidak wajar disebut sebagai tumor Malignant.
Untuk masalah tersebut kami memiliki hasil data set yang dapat memprediksikan apakah seseorang didiagnosa mengalami kanker payudara bagian benign atau malignant. Kami akan menunjukan hasil analisa project yang sudah kami kerjakan melalui Python dan Goggle Collab.
Pertama, kita import library yang dibutuhkan:
import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns
Lalu, kita memahami dan memunculkan data yang akan kita gunakan.
link = “https://raw.github.com/JosephWilliam1210/bcwpython/main/data.csv"datas = pd.read_csv(link)datas
datas.shape
datas.info()
datas.columns
datas.isnull().sum()
datas.drop("Unnamed: 32", axis=1, inplace=True)datas.describe()
Langkah selanjutnya, kita visualisasikan data diatas menjadi heatmap.
Setelah kita visualisasikan data diatas, kita persiapkan data tersebut untuk dilatih pada Machine Learning agar data yang akan kita gunakan lebih cocok untuk diklasifikasikan.
from sklearn.model_selection import train_test_splitX_train, X_test, y_train, y_test = train_test_split(datas.drop('diagnosis', axis=1),datas['diagnosis'],test_size=0.2,random_state=42)print("Shape of training set:", X_train.shape)print("Shape of test set:", X_test.shape)
from sklearn.preprocessing import StandardScalerss = StandardScaler()X_train = ss.fit_transform(X_train)X_test = ss.fit_transform(X_test)
Setelah melakukan semua langkah diatas barulah data tersebut dapat kita klasifikasikan menggunakan K Nearest Neighbours. K Nearest Neigbours adalah sebuah metode klasifikasi terhadap sekumpulan data berdasarkan pembelajaran data yang sudah terklasifikasikan sebelumya. Termasuk dalam supervised learning, dimana hasil query instance yang baru diklasifikasikan berdasarkan mayoritas kedekatan jarak dari kategori yang ada dalam K-NN.
Referensi : https://www.kaggle.com/anandhuh/breast-cancer-prediction-accuracy-98-24
Pertama kita mencari value yang memiliki tingkat rata-rata error yang rendah.
from sklearn.neighbors import KNeighborsClassifiererror_rate = []
for i in range(1,42):
knn = KNeighborsClassifier(n_neighbors=i)knn.fit(X_train, y_train)pred_i = knn.predict(X_test)error_rate.append(np.mean(pred_i != y_test))
plt.figure(figsize=(12,6))plt.plot(range(1,42), error_rate, color='purple', linestyle="--",marker='o', markersize=10, markerfacecolor='b')plt.title('Error_Rate vs K-value')plt.show()
Setelah mendapatkan value dengan tingkat error yang rendah, kita gunakan value tersebut untuk mengklasifikasikan data tersebut.
knn = KNeighborsClassifier(n_neighbors=36)knn.fit(X_train, y_train)predictions2 = knn.predict(X_test)
from sklearn.metrics import confusion_matrixprint(confusion_matrix(y_test, predictions2))print("\n")print(classification_report(y_test, predictions2))
knn_model_acc = accuracy_score(y_test, predictions2)print("Accuracy of K Neighbors Classifier Model is: ", knn_model_acc)
Jadi, kita mendapatkan hasil diatas ketika menggunakan metode KNearest Neighbors.
Code : https://colab.research.google.com/drive/1xJup4t3DsnvnA5sXBPfOcuKv_k_MqIag?usp=sharing