In [1]:
import pandas as pd
import numpy as np
In [2]:
import matplotlib.pyplot as plt
import seaborn as sns
In [3]:
%matplotlib inline
In [5]:
iris = sns.load_dataset("iris")
In [7]:
iris.head()
Out[7]:
sepal_length
sepal_width
petal_length
petal_width
species
0
5.1
3.5
1.4
0.2
setosa
1
4.9
3.0
1.4
0.2
setosa
2
4.7
3.2
1.3
0.2
setosa
3
4.6
3.1
1.5
0.2
setosa
4
5.0
3.6
1.4
0.2
setosa
In [8]:
sns.pairplot(iris, hue="species")
Out[8]:
<seaborn.axisgrid.PairGrid at 0x7f6bad3bed68>
In [9]:
sns.kdeplot(iris[iris["species"]=="setosa"]["sepal_length"], iris[iris["species"]=="setosa"]["sepal_width"])
Out[9]:
<matplotlib.axes._subplots.AxesSubplot at 0x7f6b8d69cb38>
In [10]:
from sklearn.model_selection import train_test_split
In [11]:
X = iris.drop("species", axis=1)
y = iris["species"]
In [13]:
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3)
In [14]:
from sklearn.svm import SVC
In [15]:
model = SVC()
In [16]:
model.fit(X_train, y_train)
Out[16]:
SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0,
decision_function_shape=None, degree=3, gamma='auto', kernel='rbf',
max_iter=-1, probability=False, random_state=None, shrinking=True,
tol=0.001, verbose=False)
In [17]:
predictions = model.predict(X_test)
In [19]:
from sklearn.metrics import classification_report, confusion_matrix
def report(y_test, pred):
print(confusion_matrix(y_test, predictions))
print("\n")
print(classification_report(y_test, predictions))
In [20]:
report(y_test, predictions)
[[21 0 0]
[ 0 11 0]
[ 0 1 12]]
precision recall f1-score support
setosa 1.00 1.00 1.00 21
versicolor 0.92 1.00 0.96 11
virginica 1.00 0.92 0.96 13
avg / total 0.98 0.98 0.98 45
In [29]:
from sklearn.grid_search import GridSearchCV
In [30]:
param_grid = {
"C":[0.1, 1, 10, 1000],
"gamma":[1, 0,.1, 0.01, 0.001, 0.0001]
}
In [31]:
grid = GridSearchCV(SVC(), param_grid, verbose=3)
In [32]:
grid.fit(X_train, y_train)
Fitting 3 folds for each of 24 candidates, totalling 72 fits
[CV] C=0.1, gamma=1 ..................................................
[CV] ......................... C=0.1, gamma=1, score=1.000000 - 0.0s
[CV] C=0.1, gamma=1 ..................................................
[CV] ......................... C=0.1, gamma=1, score=0.942857 - 0.0s
[CV] C=0.1, gamma=1 ..................................................
[CV] ......................... C=0.1, gamma=1, score=0.882353 - 0.0s
[CV] C=0.1, gamma=0 ..................................................
[CV] ......................... C=0.1, gamma=0, score=0.361111 - 0.0s
[CV] C=0.1, gamma=0 ..................................................
[CV] ......................... C=0.1, gamma=0, score=0.371429 - 0.0s
[CV] C=0.1, gamma=0 ..................................................
[CV] ......................... C=0.1, gamma=0, score=0.382353 - 0.0s
[CV] C=0.1, gamma=0.1 ................................................
[CV] ....................... C=0.1, gamma=0.1, score=0.805556 - 0.0s
[CV] C=0.1, gamma=0.1 ................................................
[CV] ....................... C=0.1, gamma=0.1, score=0.914286 - 0.0s
[CV] C=0.1, gamma=0.1 ................................................
[CV] ....................... C=0.1, gamma=0.1, score=0.911765 - 0.0s
[CV] C=0.1, gamma=0.01 ...............................................
[CV] ...................... C=0.1, gamma=0.01, score=0.361111 - 0.0s
[CV] C=0.1, gamma=0.01 ...............................................
[CV] ...................... C=0.1, gamma=0.01, score=0.371429 - 0.0s
[CV] C=0.1, gamma=0.01 ...............................................
[CV] ...................... C=0.1, gamma=0.01, score=0.382353 - 0.0s
[CV] C=0.1, gamma=0.001 ..............................................
[CV] ..................... C=0.1, gamma=0.001, score=0.361111 - 0.0s
[CV] C=0.1, gamma=0.001 ..............................................
[CV] ..................... C=0.1, gamma=0.001, score=0.371429 - 0.0s
[CV] C=0.1, gamma=0.001 ..............................................
[CV] ..................... C=0.1, gamma=0.001, score=0.382353 - 0.0s
[CV] C=0.1, gamma=0.0001 .............................................
[CV] .................... C=0.1, gamma=0.0001, score=0.361111 - 0.0s
[CV] C=0.1, gamma=0.0001 .............................................
[CV] .................... C=0.1, gamma=0.0001, score=0.371429 - 0.0s
[CV] C=0.1, gamma=0.0001 .............................................
[CV] .................... C=0.1, gamma=0.0001, score=0.382353 - 0.0s
[CV] C=1, gamma=1 ....................................................
[CV] ........................... C=1, gamma=1, score=1.000000 - 0.0s
[CV] C=1, gamma=1 ....................................................
[CV] ........................... C=1, gamma=1, score=0.971429 - 0.0s
[CV] C=1, gamma=1 ....................................................
[CV] ........................... C=1, gamma=1, score=0.911765 - 0.0s
[CV] C=1, gamma=0 ....................................................
[CV] ........................... C=1, gamma=0, score=0.361111 - 0.0s
[CV] C=1, gamma=0 ....................................................
[CV] ........................... C=1, gamma=0, score=0.371429 - 0.0s
[CV] C=1, gamma=0 ....................................................
[CV] ........................... C=1, gamma=0, score=0.382353 - 0.0s
[CV] C=1, gamma=0.1 ..................................................
[CV] ......................... C=1, gamma=0.1, score=1.000000 - 0.0s
[CV] C=1, gamma=0.1 ..................................................
[CV] ......................... C=1, gamma=0.1, score=0.914286 - 0.0s
[CV] C=1, gamma=0.1 ..................................................
[CV] ......................... C=1, gamma=0.1, score=0.911765 - 0.0s
[CV] C=1, gamma=0.01 .................................................
[CV] ........................ C=1, gamma=0.01, score=0.805556 - 0.0s
[CV] C=1, gamma=0.01 .................................................
[CV] ........................ C=1, gamma=0.01, score=0.914286 - 0.0s
[CV] C=1, gamma=0.01 .................................................
[CV] ........................ C=1, gamma=0.01, score=0.882353 - 0.0s
[CV] C=1, gamma=0.001 ................................................
[CV] ....................... C=1, gamma=0.001, score=0.361111 - 0.0s
[CV] C=1, gamma=0.001 ................................................
[CV] ....................... C=1, gamma=0.001, score=0.371429 - 0.0s
[CV] C=1, gamma=0.001 ................................................
[CV] ....................... C=1, gamma=0.001, score=0.382353 - 0.0s
[CV] C=1, gamma=0.0001 ...............................................
[CV] ...................... C=1, gamma=0.0001, score=0.361111 - 0.0s
[CV] C=1, gamma=0.0001 ...............................................
[CV] ...................... C=1, gamma=0.0001, score=0.371429 - 0.0s
[CV] C=1, gamma=0.0001 ...............................................
[CV] ...................... C=1, gamma=0.0001, score=0.382353 - 0.0s
[CV] C=10, gamma=1 ...................................................
[CV] .......................... C=10, gamma=1, score=0.972222 - 0.0s
[CV] C=10, gamma=1 ...................................................
[CV] .......................... C=10, gamma=1, score=0.942857 - 0.0s
[CV] C=10, gamma=1 ...................................................
[CV] .......................... C=10, gamma=1, score=0.911765 - 0.0s
[CV] C=10, gamma=0 ...................................................
[CV] .......................... C=10, gamma=0, score=0.361111 - 0.0s
[CV] C=10, gamma=0 ...................................................
[CV] .......................... C=10, gamma=0, score=0.371429 - 0.0s
[CV] C=10, gamma=0 ...................................................
[CV] .......................... C=10, gamma=0, score=0.382353 - 0.0s
[CV] C=10, gamma=0.1 .................................................
[CV] ........................ C=10, gamma=0.1, score=0.972222 - 0.0s
[CV] C=10, gamma=0.1 .................................................
[CV] ........................ C=10, gamma=0.1, score=0.942857 - 0.0s
[CV] C=10, gamma=0.1 .................................................
[CV] ........................ C=10, gamma=0.1, score=0.911765 - 0.0s
[CV] C=10, gamma=0.01 ................................................
[CV] ....................... C=10, gamma=0.01, score=1.000000 - 0.0s
[CV] C=10, gamma=0.01 ................................................
[CV] ....................... C=10, gamma=0.01, score=0.914286 - 0.0s
[CV] C=10, gamma=0.01 ................................................
[CV] ....................... C=10, gamma=0.01, score=0.911765 - 0.0s
[CV] C=10, gamma=0.001 ...............................................
[CV] ...................... C=10, gamma=0.001, score=0.805556 - 0.0s
[CV] C=10, gamma=0.001 ...............................................
[CV] ...................... C=10, gamma=0.001, score=0.914286 - 0.0s
[CV] C=10, gamma=0.001 ...............................................
[CV] ...................... C=10, gamma=0.001, score=0.882353 - 0.0s
[CV] C=10, gamma=0.0001 ..............................................
[CV] ..................... C=10, gamma=0.0001, score=0.361111 - 0.0s
[CV] C=10, gamma=0.0001 ..............................................
[CV] ..................... C=10, gamma=0.0001, score=0.371429 - 0.0s
[CV] C=10, gamma=0.0001 ..............................................
[CV] ..................... C=10, gamma=0.0001, score=0.382353 - 0.0s
[CV] C=1000, gamma=1 .................................................
[CV] ........................ C=1000, gamma=1, score=0.833333 - 0.0s
[CV] C=1000, gamma=1 .................................................
[CV] ........................ C=1000, gamma=1, score=0.942857 - 0.0s
[CV] C=1000, gamma=1 .................................................
[CV] ........................ C=1000, gamma=1, score=0.911765 - 0.0s
[CV] C=1000, gamma=0 .................................................
[CV] ........................ C=1000, gamma=0, score=0.361111 - 0.0s
[CV] C=1000, gamma=0 .................................................
[CV] ........................ C=1000, gamma=0, score=0.371429 - 0.0s
[CV] C=1000, gamma=0 .................................................
[CV] ........................ C=1000, gamma=0, score=0.382353 - 0.0s
[CV] C=1000, gamma=0.1 ...............................................
[CV] ...................... C=1000, gamma=0.1, score=0.972222 - 0.0s
[CV] C=1000, gamma=0.1 ...............................................
[CV] ...................... C=1000, gamma=0.1, score=0.942857 - 0.0s
[CV] C=1000, gamma=0.1 ...............................................
[CV] ...................... C=1000, gamma=0.1, score=0.882353 - 0.0s
[CV] C=1000, gamma=0.01 ..............................................
[CV] ..................... C=1000, gamma=0.01, score=1.000000 - 0.0s
[CV] C=1000, gamma=0.01 ..............................................
[CV] ..................... C=1000, gamma=0.01, score=0.914286 - 0.0s
[CV] C=1000, gamma=0.01 ..............................................
[CV] ..................... C=1000, gamma=0.01, score=0.911765 - 0.0s
[CV] C=1000, gamma=0.001 .............................................
[CV] .................... C=1000, gamma=0.001, score=0.972222 - 0.0s
[CV] C=1000, gamma=0.001 .............................................
[CV] .................... C=1000, gamma=0.001, score=0.942857 - 0.0s
[CV] C=1000, gamma=0.001 .............................................
[CV] .................... C=1000, gamma=0.001, score=0.911765 - 0.0s
[CV] C=1000, gamma=0.0001 ............................................
[CV] ................... C=1000, gamma=0.0001, score=1.000000 - 0.0s
[CV] C=1000, gamma=0.0001 ............................................
[CV] ................... C=1000, gamma=0.0001, score=0.914286 - 0.0s
[CV] C=1000, gamma=0.0001 ............................................
[CV] ................... C=1000, gamma=0.0001, score=0.911765 - 0.0s
[Parallel(n_jobs=1)]: Done 1 out of 1 | elapsed: 0.0s remaining: 0.0s
[Parallel(n_jobs=1)]: Done 2 out of 2 | elapsed: 0.0s remaining: 0.0s
[Parallel(n_jobs=1)]: Done 72 out of 72 | elapsed: 0.1s finished
Out[32]:
GridSearchCV(cv=None, error_score='raise',
estimator=SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0,
decision_function_shape=None, degree=3, gamma='auto', kernel='rbf',
max_iter=-1, probability=False, random_state=None, shrinking=True,
tol=0.001, verbose=False),
fit_params={}, iid=True, n_jobs=1,
param_grid={'C': [0.1, 1, 10, 1000], 'gamma': [1, 0, 0.1, 0.01, 0.001, 0.0001]},
pre_dispatch='2*n_jobs', refit=True, scoring=None, verbose=3)
In [33]:
grid.best_params_
Out[33]:
{'C': 1, 'gamma': 1}
In [35]:
grid_pred = grid.predict(X_test)
report(y_test, grid_pred)
[[21 0 0]
[ 0 11 0]
[ 0 1 12]]
precision recall f1-score support
setosa 1.00 1.00 1.00 21
versicolor 0.92 1.00 0.96 11
virginica 1.00 0.92 0.96 13
avg / total 0.98 0.98 0.98 45
In [ ]:
Content source: ttlekich/ds_practice
Similar notebooks: