Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # %%
- import numpy as np
- import matplotlib.pyplot as plt
- from sklearn import datasets
- from sklearn.model_selection import train_test_split
- from sklearn.svm import SVC
- from sklearn.metrics import accuracy_score, classification_report, confusion_matrix
- # %%
- iris = datasets.load_iris()
- # %%
- X = iris.data
- y = iris.target
- # %%
- X_train, X_test, y_train, y_test = train_test_split(X,y,test_size=0.2,random_state=42)
- # %%
- svm_classifier = SVC(kernel='linear',C=1.0,random_state=42)
- # %%
- svm_classifier.fit(X_train,y_train)
- # %%
- y_pred = svm_classifier.predict(X_test)
- # %%
- accuracy = accuracy_score(y_test,y_pred)
- print(f"Accuracy : {accuracy * 100:.2f}%")
- # %%
- print("\nClassification Report: ")
- print(classification_report(y_test, y_pred))
- # %%
- print("\nConfusion Matrix: ")
- print(confusion_matrix(y_test,y_pred))
- # %%
- X_simplified = iris.data[:, :2]
- X_train_simplified, X_test_simplified, y_train_simplified, y_test_simplified = train_test_split(X_simplified,y,test_size=0.2,random_state=42)
- # %%
- svm_classifier_simplified = SVC(kernel='linear',C=1.0)
- svm_classifier_simplified.fit(X_train_simplified, y_train_simplified)
- # %%
- x_min,x_max = X_simplified[:,0].min()-1,X_simplified[:,0].max()+1
- y_min,y_max = X_simplified[:,1].min()-1,X_simplified[:,1].max()+1
- xx,yy=np.meshgrid(np.arange(x_min,x_max,0.02),np.arange(y_min,y_max,0.02))
- # %%
- Z = svm_classifier_simplified.predict(np.c_[xx.ravel(),yy.ravel()])
- Z = Z.reshape(xx.shape)
- # %%
- plt.contour(xx,yy,Z,alpha=0.8)
- plt.scatter(X_simplified[:,0], X_simplified[:,1],c=y, edgecolors='k',marker='o',s=100,cmap=plt.cm.coolwarm)
- plt.xlabel('Sepal Length')
- plt.ylabel('Sepal Width')
- plt.title('SVM Decision Boundary (Using Only Sepal length and Sepal Width)')
- plt.show()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement