Saturday, June 25, 2022

SVM RBF Classifieng (sample circles)

 (.env) boris@boris-All-Series:~/SVMRBF$ cat  plotting3DSVM1.py

from sklearn.svm import SVC 

from sklearn.datasets  import make_circles

import matplotlib.pyplot as plt

from mpl_toolkits import mplot3d

import numpy as np

from ipywidgets import interact

def plot_svc_decision_function(clf, ax=None):

    """Plot the decision function for a 2D SVC"""

    if ax is None:

        ax = plt.gca()

    x = np.linspace(plt.xlim()[0], plt.xlim()[1], 30)

    y = np.linspace(plt.ylim()[0], plt.ylim()[1], 30)

    Y, X = np.meshgrid(y, x)

    P = np.zeros_like(X)

    for i, xi in enumerate(x):

        for j, yj in enumerate(y):

            P[i, j] = clf.decision_function([[xi, yj]])

    # plot the margins

    ax.contour(X, Y, P, colors='k',

               levels=[-1, 0, 1], alpha=0.5,

               linestyles=['--', '-', '--'])

X, y = make_circles(100, factor=.1, noise=.1)

def plot_3D(elev=30, azim=30):

    ax = plt.subplot(projection='3d')

    ax.scatter3D(X[:, 0], X[:, 1], r, c=y, s=50, cmap='spring')

    ax.view_init(elev=elev, azim=azim)

    ax.set_xlabel('x')

    ax.set_ylabel('y')

    ax.set_zlabel('r')

interact(plot_3D, elev=(-90, 90), azip=(-180, 180));

clf = SVC(kernel='rbf')

clf.fit(X, y)

plt.scatter(X[:, 0], X[:, 1], c=y, s=50, cmap='spring')

plot_svc_decision_function(clf)

plt.scatter(clf.support_vectors_[:, 0], clf.support_vectors_[:, 1],

            s=200, facecolors='none');

plt.show()





























No comments:

Post a Comment