Advertisement
brandblox

Lab_ML(03/03/25)

Mar 3rd, 2025
169
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.75 KB | None | 0 0
  1. # %%
  2. import numpy as np
  3. import matplotlib.pyplot as plt
  4. from sklearn import datasets
  5. from sklearn.model_selection import train_test_split
  6. from sklearn.svm import SVC
  7. from sklearn.metrics import accuracy_score, classification_report, confusion_matrix
  8.  
  9. # %%
  10. iris = datasets.load_iris()
  11.  
  12. # %%
  13. X = iris.data
  14. y = iris.target
  15.  
  16. # %%
  17. X_train, X_test, y_train, y_test = train_test_split(X,y,test_size=0.2,random_state=42)
  18.  
  19. # %%
  20. svm_classifier = SVC(kernel='linear',C=1.0,random_state=42)
  21.  
  22. # %%
  23. svm_classifier.fit(X_train,y_train)
  24.  
  25. # %%
  26. y_pred = svm_classifier.predict(X_test)
  27.  
  28. # %%
  29. accuracy = accuracy_score(y_test,y_pred)
  30. print(f"Accuracy : {accuracy * 100:.2f}%")
  31.  
  32. # %%
  33. print("\nClassification Report: ")
  34. print(classification_report(y_test, y_pred))
  35.  
  36. # %%
  37. print("\nConfusion Matrix: ")
  38. print(confusion_matrix(y_test,y_pred))
  39.  
  40. # %%
  41. X_simplified = iris.data[:, :2]
  42. 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)
  43.  
  44. # %%
  45. svm_classifier_simplified = SVC(kernel='linear',C=1.0)
  46. svm_classifier_simplified.fit(X_train_simplified, y_train_simplified)
  47.  
  48. # %%
  49. x_min,x_max = X_simplified[:,0].min()-1,X_simplified[:,0].max()+1
  50. y_min,y_max = X_simplified[:,1].min()-1,X_simplified[:,1].max()+1
  51. xx,yy=np.meshgrid(np.arange(x_min,x_max,0.02),np.arange(y_min,y_max,0.02))
  52.  
  53. # %%
  54. Z = svm_classifier_simplified.predict(np.c_[xx.ravel(),yy.ravel()])
  55. Z = Z.reshape(xx.shape)
  56.  
  57. # %%
  58. plt.contour(xx,yy,Z,alpha=0.8)
  59. plt.scatter(X_simplified[:,0], X_simplified[:,1],c=y, edgecolors='k',marker='o',s=100,cmap=plt.cm.coolwarm)
  60. plt.xlabel('Sepal Length')
  61. plt.ylabel('Sepal Width')
  62. plt.title('SVM Decision Boundary (Using Only Sepal length and Sepal Width)')
  63. plt.show()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement