Created
August 8, 2020 06:34
-
-
Save amansk2050/557e818f694c55469a104d2ed36992d0 to your computer and use it in GitHub Desktop.
Support vector machine classification
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# importing libraries | |
import numpy as nm | |
import matplotlib.pyplot as mtp | |
import pandas as pd | |
#importing datasets | |
data_set= pd.read_csv('/kaggle/input/iris-flower-dataset/IRIS.csv') | |
#Extracting Independent and dependent Variable | |
from sklearn.preprocessing import OrdinalEncoder | |
from sklearn.preprocessing import LabelEncoder | |
y=data_set['species'].astype(str) | |
features=['sepal_length','sepal_width'] | |
x=data_set[features] | |
# ordinal encode target variable | |
label_encoder = LabelEncoder() | |
y = label_encoder.fit_transform(y) | |
# Splitting the dataset into training and test set. | |
from sklearn.model_selection import train_test_split | |
x_train, x_test, y_train, y_test= train_test_split(x, y, test_size= 0.25, random_state=0) | |
#feature Scaling | |
from sklearn.preprocessing import StandardScaler | |
st_x= StandardScaler() | |
x_train= st_x.fit_transform(x_train) | |
x_test= st_x.transform(x_test) | |
from sklearn.svm import SVC # "Support vector classifier" | |
classifier = SVC(kernel='linear', random_state=0) | |
classifier.fit(x_train, y_train) | |
#Predicting the test set result | |
y_pred= classifier.predict(x_test) | |
x_min, x_max = X[:, 0].min() - 1, X[:, 0].max() + 1 | |
y_min, y_max = X[:, 1].min() - 1, X[:, 1].max() + 1 | |
h = (x_max / x_min)/100 | |
xx, yy = np.meshgrid(np.arange(x_min, x_max, h), np.arange(y_min, y_max, h)) | |
X_plot = np.c_[xx.ravel(), yy.ravel()] | |
C = 1.0 | |
Z = classifier.predict(X_plot) | |
Z = Z.reshape(xx.shape) | |
plt.figure(figsize=(15, 5)) | |
plt.subplot(121) | |
plt.contourf(xx, yy, Z, cmap=plt.cm.tab10, alpha=0.3) | |
plt.scatter(X[:, 0], X[:, 1], c=y, cmap=plt.cm.Set1) | |
plt.xlabel('sepal_length') | |
plt.ylabel('sepal_width') | |
plt.xlim(xx.min(), xx.max()) | |
plt.title('Support Vector Classifier with linear kernel') | |
#using rbf kernel | |
classifier = svm.SVC(kernel = 'rbf',C=1, gamma ="auto").fit(x, y) | |
Z = classifier.predict(X_plot) | |
Z = Z.reshape(xx.shape) | |
plt.figure(figsize=(15, 5)) | |
plt.subplot(121) | |
plt.contourf(xx, yy, Z, cmap = plt.cm.tab10, alpha = 0.3) | |
plt.scatter(X[:, 0], X[:, 1], c = y, cmap = plt.cm.Set1) | |
plt.xlabel('Sepal length') | |
plt.ylabel('Sepal width') | |
plt.xlim(xx.min(), xx.max()) | |
plt.title('Support Vector Classifier with rbf kernel') |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment