└── TASK-01 IRIS FLOWER CLASSIFICATION /TASK-01 IRIS FLOWER CLASSIFICATION: -------------------------------------------------------------------------------- 1 | #Import Libraries/Packages 2 | import pandas as pd 3 | import numpy as np 4 | import matplotlib.pyplot as plt 5 | import seaborn as sns 6 | %matplotlib inline 7 | import warnings 8 | warnings.filterwarnings('ignore') 9 | import pandas as pd 10 | 11 | # Load the csv file into a DataFrame 12 | dataset = pd.read_csv("Iris.csv") 13 | 14 | dataset 15 | # Shape of Dataset 16 | dataset.shape 17 | #Display the first few rows of the DataFrame 18 | dataset.head() 19 | #Checking Null Values 20 | dataset.isnull().sum() 21 | #Dataset Summary 22 | dataset.info() 23 | #Dataset Statistical Summary 24 | dataset.describe() 25 | # To display no. of samples on each class. 26 | dataset['Species'].value_counts() 27 | dataset['Species'].value_counts().plot(kind = 'pie', autopct = '%1.1f%%', shadow = True, explode = [0.05,0.05,0.05]) 28 | dataset.corr() 29 | import seaborn as sns 30 | import matplotlib.pyplot as plt 31 | 32 | plt.figure(figsize=(9, 7)) 33 | sns.heatmap(dataset.corr(), cmap='CMRmap', annot=True, linewidths=2) 34 | plt.title("Correlation Graph", size=20) 35 | plt.show() 36 | #Label encoding for categorical variables 37 | from sklearn.preprocessing import LabelEncoder 38 | le = LabelEncoder() 39 | dataset['Species'] = le.fit_transform(dataset['Species']) 40 | dataset.head() 41 | dataset['Species'].unique() 42 | import pandas as pd 43 | from sklearn.model_selection import train_test_split 44 | 45 | # Load the CSV file into a DataFrame 46 | df = pd.read_csv("Iris.csv") 47 | 48 | features = ['SepalLengthCm', 'SepalWidthCm', 'PetalLengthCm', 'PetalWidthCm'] 49 | X = df.loc[:, features].values 50 | Y = df['Species'].values 51 | 52 | # Split the dataset into training and test sets 53 | X_Train, X_Test, Y_Train, Y_Test = train_test_split(X, Y, test_size=0.2, random_state=0) 54 | 55 | print(X_Train.shape) 56 | Y_Train.shape 57 | X_Test.shape 58 | Y_Test.shape 59 | # Feature Scaling to bring all the variables in a single scale. 60 | from sklearn.preprocessing import StandardScaler 61 | sc = StandardScaler() 62 | X_Train = sc.fit_transform(X_Train) 63 | X_Test = sc.transform(X_Test) 64 | 65 | 66 | # Importing some metrics for evaluating models. 67 | from sklearn import metrics 68 | from sklearn.metrics import accuracy_score 69 | from sklearn.metrics import classification_report 70 | from sklearn.metrics import confusion_matrix 71 | from sklearn.linear_model import LogisticRegression 72 | log_model= LogisticRegression(random_state = 0) 73 | log_model.fit(X_Train, Y_Train) 74 | 75 | # model training 76 | log_model.fit(X_Train, Y_Train) 77 | 78 | # Predicting 79 | Y_Pred_Test_log_res=log_model.predict(X_Test) 80 | 81 | 82 | 83 | print(Y_Pred_Test_log_res) 84 | log_model = LogisticRegression(random_state=0, max_iter=100) 85 | from sklearn import metrics 86 | 87 | accuracy = metrics.accuracy_score(Y_Test, Y_Pred_Test_log_res) 88 | print("Accuracy:", accuracy * 100) 89 | from sklearn.metrics import classification_report 90 | print(classification_report(Y_Test, Y_Pred_Test_log_res)) 91 | from sklearn.metrics import confusion_matrix 92 | confusion_matrix(Y_Test,Y_Pred_Test_log_res ) 93 | from sklearn.neighbors import KNeighborsClassifier 94 | knn_model = KNeighborsClassifier(n_neighbors=3, weights='distance', algorithm='auto') 95 | 96 | # Importing KNeighborsClassifier 97 | from sklearn.neighbors import KNeighborsClassifier 98 | knn_model = KNeighborsClassifier(n_neighbors = 5, metric = 'minkowski', p = 2) 99 | 100 | # model training 101 | knn_model.fit(X_Train, Y_Train) 102 | 103 | # Predicting 104 | Y_Pred_Test_knn=knn_model.predict(X_Test) 105 | 106 | 107 | # model training 108 | log_model.fit(X_Train, Y_Train) 109 | Y_Pred_Test_knn 110 | print("Accuracy:",metrics.accuracy_score(Y_Test,Y_Pred_Test_knn)*100) 111 | print(classification_report(Y_Test,Y_Pred_Test_knn)) 112 | confusion_matrix(Y_Test, Y_Pred_Test_knn) 113 | from sklearn.tree import DecisionTreeClassifier 114 | dec_tree = DecisionTreeClassifier(criterion='entropy',splitter='best',max_depth=6) 115 | 116 | # model training 117 | dec_tree.fit(X_Train, Y_Train) 118 | 119 | # Predicting 120 | Y_Pred_Test_dtr=dec_tree.predict(X_Test) 121 | 122 | 123 | Y_Pred_Test_dtr 124 | print("Accuracy:",metrics.accuracy_score(Y_Test, Y_Pred_Test_dtr)*100) 125 | 126 | print(classification_report(Y_Test, Y_Pred_Test_dtr)) 127 | confusion_matrix(Y_Test, Y_Pred_Test_dtr) 128 | from sklearn.naive_bayes import GaussianNB 129 | nav_byes = GaussianNB() 130 | 131 | # model training 132 | nav_byes.fit(X_Train, Y_Train) 133 | 134 | # Predicting 135 | Y_Pred_Test_nvb=nav_byes.predict(X_Test) 136 | 137 | 138 | Y_Pred_Test_nvb 139 | print("Accuracy:",metrics.accuracy_score(Y_Test, Y_Pred_Test_nvb)*100) 140 | 141 | 142 | print(classification_report(Y_Test, Y_Pred_Test_nvb)) 143 | confusion_matrix(Y_Test,Y_Pred_Test_nvb ) 144 | from sklearn.svm import SVC 145 | svm_model=SVC(C=500, kernel='rbf') 146 | 147 | # model training 148 | svm_model.fit(X_Train, Y_Train) 149 | 150 | # Predicting 151 | Y_Pred_Test_svm=svm_model.predict(X_Test) 152 | 153 | 154 | Y_Pred_Test_svm 155 | print("Accuracy:",metrics.accuracy_score(Y_Test,Y_Pred_Test_svm)*100) 156 | onfusion_matrix(Y_Test,Y_Pred_Test_svm ) 157 | print("Accuracy of Logistic Regression Model:",metrics.accuracy_score(Y_Test, Y_Pred_Test_log_res)*100) 158 | print("Accuracy of KNN Model:",metrics.accuracy_score(Y_Test,Y_Pred_Test_knn)*100) 159 | print("Accuracy of Decision Tree Model:",metrics.accuracy_score(Y_Test, Y_Pred_Test_dtr)*100) 160 | print("Accuracy of Naive Bayes Model:",metrics.accuracy_score(Y_Test, Y_Pred_Test_nvb)*100) 161 | print("Accuracy of SVM Model:",metrics.accuracy_score(Y_Test,Y_Pred_Test_svm)*100) 162 | print(classification_report(Y_Test, Y_Pred_Test_svm)) 163 | --------------------------------------------------------------------------------