-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathKNNClassifierRegressor.py
More file actions
41 lines (41 loc) · 1.68 KB
/
KNNClassifierRegressor.py
File metadata and controls
41 lines (41 loc) · 1.68 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
from warnings import filterwarnings
filterwarnings('ignore')
pd.set_option('display.max_columns', None)
pd.set_option('display.max_colwidth', None)
from sklearn.model_selection import train_test_split
from sklearn.metrics import classification_report,confusion_matrix,accuracy_score
from sklearn.datasets import make_classification
X,y=make_classification(n_samples=1000,n_features=3,n_redundant=1,n_classes=2,random_state=0,shuffle=False)
X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.33,random_state=42)
from sklearn.neighbors import KNeighborsClassifier
classifier=KNeighborsClassifier(n_neighbors=7,algorithm='auto')
classifier.fit(X_train,y_train)
y_pred=classifier.predict(X_test)
print(confusion_matrix(y_test,y_pred))
print(classification_report(y_test,y_pred))
print(accuracy_score(y_test,y_pred))
print('*******************************************')
parameter={
'weights':['uniform','distance'],
'algorithm':['ball_tree','kd_tree','brute'],
'n_neighbors':[1,2,3,4,5,6,7,8,9,10],
'p':[1,2]
}
from sklearn.model_selection import GridSearchCV
classifier=KNeighborsClassifier()
clf=GridSearchCV(classifier,param_grid=parameter,cv=5,scoring='accuracy')
clf.fit(X_train,y_train)
print(clf.best_params_)
y_pred=clf.predict(X_test)
score=accuracy_score(y_test,y_pred)
# print(score)
# print(classification_report(y_test,y_pred))
print('*******************************************')
print(confusion_matrix(y_test,y_pred))
print(classification_report(y_test,y_pred))
print(accuracy_score(y_test,y_pred))
print('*******************************************')