Algorithm’s Classification Boundaries¶
[1]:
from mightypy.make import spiral_data
from graphpkg.static import grid_classification_boundary
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
from sklearn.svm import SVC
from sklearn.neighbors import KNeighborsClassifier
from sklearn.ensemble import (
AdaBoostClassifier,
GradientBoostingClassifier,
RandomForestClassifier
)
from sklearn.linear_model import LogisticRegression
from sklearn.tree import DecisionTreeClassifier
import warnings
warnings.filterwarnings("ignore")
2 classes, simple spiral data¶
[2]:
data_limit = 30
data = np.hstack(spiral_data(data_limit=data_limit))
np.random.shuffle(data)
X, y = data[...,[0,1]], data[...,2]
sns.scatterplot(x=X[...,0],y=X[...,1],hue=y, palette='dark')
plt.show()
[3]:
lr_model = LogisticRegression().fit(X,y)
dt_model = DecisionTreeClassifier().fit(X,y)
rf_model = RandomForestClassifier(n_estimators=200).fit(X, y)
ab_model = AdaBoostClassifier(n_estimators=200).fit(X, y)
gb_model = GradientBoostingClassifier().fit(X, y)
knn_model = KNeighborsClassifier().fit(X, y)
svc_model = SVC().fit(X, y)
models_list = [
{
"name" : "Logistic Regression",
"function" : lr_model.predict
},{
"name": "Decision Tree",
"function": dt_model.predict
},{
"name": "Random Forest",
"function": rf_model.predict
},{
"name" : "Adaboost",
"function" : ab_model.predict
},{
"name" : "Gradientboost",
"function" : gb_model.predict
},{
"name" : "KNN",
"function" : knn_model.predict
}, {
"name": "SVC",
"function": svc_model.predict
},
]
grid_classification_boundary(models_list=models_list, data=data, size=data_limit,
figsize=(15,15), canvas_details=100)
plt.show()
3 classes, simple spiral data¶
[4]:
data_limit = 30
data = np.hstack(spiral_data(n_classes=3, data_limit=data_limit))
np.random.shuffle(data)
X, y = data[...,[0,1]], data[...,2]
sns.scatterplot(x=X[...,0],y=X[...,1],hue=y, palette='dark')
plt.show()
[5]:
lr_model = LogisticRegression().fit(X,y)
dt_model = DecisionTreeClassifier().fit(X,y)
rf_model = RandomForestClassifier(n_estimators=200).fit(X, y)
ab_model = AdaBoostClassifier(n_estimators=200).fit(X, y)
gb_model = GradientBoostingClassifier().fit(X, y)
knn_model = KNeighborsClassifier().fit(X, y)
svc_model = SVC().fit(X, y)
models_list = [
{
"name" : "Logistic Regression",
"function" : lr_model.predict
},{
"name": "Decision Tree",
"function": dt_model.predict
},{
"name": "Random Forest",
"function": rf_model.predict
},{
"name" : "Adaboost",
"function" : ab_model.predict
},{
"name" : "Gradientboost",
"function" : gb_model.predict
},{
"name" : "KNN",
"function" : knn_model.predict
}, {
"name": "SVC",
"function": svc_model.predict
},
]
grid_classification_boundary(models_list=models_list, data=data, size=data_limit,
figsize=(15,15), canvas_details=100)
plt.show()
3 classes, Complex spiral data¶
[6]:
data_limit = 100
data = np.hstack(spiral_data(n_classes=3, data_limit=data_limit))
np.random.shuffle(data)
X, y = data[...,[0,1]], data[...,2]
sns.scatterplot(x=X[...,0],y=X[...,1],hue=y, palette='dark')
plt.show()
[7]:
lr_model = LogisticRegression().fit(X,y)
dt_model = DecisionTreeClassifier().fit(X,y)
rf_model = RandomForestClassifier(n_estimators=200).fit(X, y)
ab_model = AdaBoostClassifier(n_estimators=200).fit(X, y)
gb_model = GradientBoostingClassifier().fit(X, y)
knn_model = KNeighborsClassifier().fit(X, y)
svc_model = SVC().fit(X, y)
models_list = [
{
"name" : "Logistic Regression",
"function" : lr_model.predict
},{
"name": "Decision Tree",
"function": dt_model.predict
},{
"name": "Random Forest",
"function": rf_model.predict
},{
"name" : "Adaboost",
"function" : ab_model.predict
},{
"name" : "Gradientboost",
"function" : gb_model.predict
},{
"name" : "KNN",
"function" : knn_model.predict
}, {
"name": "SVC",
"function": svc_model.predict
},
]
grid_classification_boundary(models_list=models_list, data=data, size=data_limit,
figsize=(15,15), canvas_details=100)
plt.show()
5 classes, simple spiral data¶
[8]:
data_limit = 30
data = np.hstack(spiral_data(n_classes=5, data_limit=data_limit))
np.random.shuffle(data)
X, y = data[...,[0,1]], data[...,2]
sns.scatterplot(x=X[...,0],y=X[...,1],hue=y, palette='dark')
plt.show()
[9]:
lr_model = LogisticRegression().fit(X,y)
dt_model = DecisionTreeClassifier().fit(X,y)
rf_model = RandomForestClassifier(n_estimators=200).fit(X, y)
ab_model = AdaBoostClassifier(n_estimators=200).fit(X, y)
gb_model = GradientBoostingClassifier().fit(X, y)
knn_model = KNeighborsClassifier().fit(X, y)
svc_model = SVC().fit(X, y)
models_list = [
{
"name" : "Logistic Regression",
"function" : lr_model.predict
},{
"name": "Decision Tree",
"function": dt_model.predict
},{
"name": "Random Forest",
"function": rf_model.predict
},{
"name" : "Adaboost",
"function" : ab_model.predict
},{
"name" : "Gradientboost",
"function" : gb_model.predict
},{
"name" : "KNN",
"function" : knn_model.predict
}, {
"name": "SVC",
"function": svc_model.predict
},
]
grid_classification_boundary(models_list=models_list, data=data, size=data_limit,
figsize=(15,15), canvas_details=100)
plt.show()