In [1]:
import numpy as np
import scipy as sp
import pandas as pd
import statsmodels.api as sm
import statsmodels.formula.api as smf
import sklearn as sk
import matplotlib as mpl
import matplotlib.pylab as plt
from mpl_toolkits.mplot3d import Axes3D
import seaborn as sns
sns.set()
sns.set_color_codes()
%matplotlib inline
%config InlineBackend.figure_format='png'
# python 2
from __future__ import division
In [2]:
from sklearn.datasets import load_iris
iris = load_iris()
idx = np.in1d(iris.target, [0, 2])
X = iris.data[idx, 0:2]
y = iris.target[idx]
plt.scatter(X[:, 0], X[:, 1], c=y, s=100)
plt.show()
In [3]:
from sklearn.linear_model import Perceptron
def plot_perceptron(n):
model = Perceptron(n_iter=n, eta0=0.1, random_state=1).fit(X,y)
XX_min = X[:, 0].min() - 1; XX_max = X[:, 0].max() + 1;
YY_min = X[:, 1].min() - 1; YY_max = X[:, 1].max() + 1;
XX, YY = np.meshgrid(np.linspace(XX_min, XX_max, 1000), np.linspace(YY_min, YY_max, 1000))
ZZ = model.predict(np.c_[XX.ravel(), YY.ravel()]).reshape(XX.shape)
cmap = mpl.colors.ListedColormap(sns.color_palette("Set2"))
plt.figure(figsize=(10,10))
plt.contourf(XX, YY, ZZ, cmap = cmap)
plt.scatter(X[:, 0], X[:, 1], s=50, linewidth=2, c=y, cmap=cmap)
plt.xlim(XX_min, XX_max)
plt.ylim(YY_min, YY_max)
plt.grid(False)
In [4]:
plot_perceptron(1)
In [5]:
from ipywidgets import widgets
widgets.interact(plot_perceptron, n=widgets.IntSlider(min=1,max=100,step=1,value=1));
In [6]:
from sklearn.metrics import confusion_matrix, classification_report
model = Perceptron(n_iter=500, eta0=0.1, random_state=1).fit(X, y)
In [7]:
confusion_matrix(y, model.predict(X))
Out[7]:
In [8]:
from sklearn.linear_model import SGDClassifier
def
In [ ]: