Problem statement :
Finding whether a patient has Cancer or not ?? and classifying a new patient based on her reports(features)
import pandas as pd
importing data :
from sklearn.datasets import load_breast_cancer
data=load_breast_cancer()
data.data
data.feature_names
array([' malignant', 'benign'])
In this we have, two categories: 'Malignant' the one who has cancer and 'Benign' means no cancer.
data.target
data.target_names
Create a dataframe:
df=pd.DataFrame(np.c_[data.data,data.target],columns=[list(data.feature_names)+['target']])
df.head()
df.shape
(569, 31)
Split the data:
x=df.iloc[:,0:-1]
y=df.iloc[:,-1]
from 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=50)
print('shape of x_train:',x_train.shape)
print('shape of y_train:',y_train.shape)
print('shape of x_test:',x_test.shape)
print('shape of y_test:',y_test.shape)
shape of x_train: (455, 30)
shape of y_train: (455,)
shape of x_test: (114, 30)
shape of y_test: (114,)Implementing KNN Classifier :
from sklearn.neighbors import KNeighborsClassifier
classifier=KNeighborsClassifier(n_neighbors=5)
classifier.fit(x_train,y_train)
Accuracy:
classifier.score(x_test,y_test)
0.91228070175
Here we have a new patient test reports, by this we need to classify the patient whether she has cancer or not i.e is she belongs to 'Malignant' , or 'Benign'.
patient1 = [17.99, 10.38, 122.8, 1001.0, 0.1184, 0.2776, 0.3001, 0.1471, 0.2419, 0.07871, 1.095, 0.9053, 8.589, 153.4, 0.006399, 0.04904, 0.05373, 0.01587, 0.03003, 0.006193, 25.38, 17.33, 184.6, 2019.0, 0.1622, 0.6656, 0.7119, 0.2654, 0.4601, 0.1189]
patient1=np.array([patient1])
patient1
classifier.predict(patient1)
pred=classifier.predict(patient1)
if pred[0]==0:
print("patient has cancer (malignant tumor)")
else:
print("patient has no cancer (malignant benign)")
patient has cancer (malignant tumor)

Comments
Post a Comment