{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"pygments_lexer":"ipython3","nbconvert_exporter":"python","version":"3.6.4","file_extension":".py","codemirror_mode":{"name":"ipython","version":3},"name":"python","mimetype":"text/x-python"}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"import pandas as pd\nimport matplotlib.pyplot as plt","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"import matplotlib.pyplot as plt","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Importaion de données ","metadata":{}},{"cell_type":"code","source":"test_data  =pd.read_csv(\"/kaggle/input/digit-recognizer/test.csv\")","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train_data  =pd.read_csv(\"/kaggle/input/digit-recognizer/train.csv\")","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"X_train_data = train_data.iloc[:, 1:]\ny_train_data = train_data.label","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"X_train_data.head()","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"y_train_data.head()","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"### Transformation des dataframe \"X_train_data\" et \"y_train_data\" en numpy.ndarray","metadata":{}},{"cell_type":"code","source":"X_train_data_array = X_train_data.values\ny_train_data_array=y_train_data.values","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"type(X_train_data_array)","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"X_train_data_array.shape","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"y_train_data_array.shape","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"### verification","metadata":{}},{"cell_type":"code","source":"row = X_train_data_array[41999]\nrow_reshape = row.reshape((28, 28))\nrow_image = plt.imshow(row_reshape)","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"y_train_data_array[41999]","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"row = X_train_data_array[2]\nrow_reshape = row.reshape((28, 28))\nrow_image = plt.imshow(row_reshape)","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"y_train_data_array[2]","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Avant l'application de l'ACP","metadata":{}},{"cell_type":"code","source":"from sklearn.model_selection import GridSearchCV\nfrom sklearn.neighbors import KNeighborsClassifier\nfrom sklearn.ensemble import RandomForestClassifier\nfrom sklearn.naive_bayes import GaussianNB\nfrom sklearn.svm import SVC\nfrom sklearn import metrics","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## KNN Evaluation","metadata":{}},{"cell_type":"code","source":"param_grid = {\n     'n_neighbors': [11, 31, 51, 71],\n}\n\n\ndigit_tune_grid = GridSearchCV(\n    KNeighborsClassifier(),\n    param_grid,\n    cv=5,\n    verbose = 3)","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"digit_model_grid = digit_tune_grid.fit(X_train_data, y_train_data)","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"from sklearn.model_selection import train_test_split\nX_train,X_test,y_train,y_test=train_test_split(X_train_data,y_train_data,test_size=0.27,random_state=42)","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"### KNN score","metadata":{}},{"cell_type":"code","source":"knn = KNeighborsClassifier(n_neighbors = 11)\nknn.fit(X_train, y_train)","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"acc_knn = knn.score(X_test, y_test) * 100","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"acc_knn","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"### KNN matrice de confusion ","metadata":{}},{"cell_type":"code","source":"Y_pred = knn.predict(X_test)","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"metrics.confusion_matrix(y_test, Y_pred)","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## Evaluation random frorest","metadata":{}},{"cell_type":"code","source":"param_grid = {\n     'n_estimators': [50, 100, 150, 200],\n}\n\n\ndigit_tune_grid = GridSearchCV(\n    RandomForestClassifier(),\n    param_grid,\n    cv=5,\n    verbose = 3)","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"digit_model_grid = digit_tune_grid.fit(X_train_data, y_train_data)","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"### Random forest score ","metadata":{}},{"cell_type":"code","source":"random_forest = RandomForestClassifier(n_estimators=200)","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"random_forest.fit(X_train, y_train)\nacc_random_forest = random_forest.score(X_test, y_test) * 100\nacc_random_forest","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"### Random forest matrice de confusion","metadata":{}},{"cell_type":"code","source":"Y_pred_random = random_forest.predict(X_test)","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"metrics.confusion_matrix(y_test, Y_pred_random)","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## Evaluation  naive_bayes","metadata":{}},{"cell_type":"code","source":"gaussian = GaussianNB()\ngaussian.fit(X_train, y_train)","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"### naive_bayes score ","metadata":{}},{"cell_type":"code","source":"acc_gaussian=gaussian.score(X_test, y_test) * 100","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"acc_gaussian","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"### naive_bayes matrice de confusion","metadata":{}},{"cell_type":"code","source":"Y_pred_G = gaussian.predict(X_test)","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"metrics.confusion_matrix(y_test, Y_pred_G)","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## Evaluation du SVC ","metadata":{}},{"cell_type":"code","source":"svc = SVC(kernel='poly', degree=2)\nsvc.fit(X_train, y_train)","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"### SVC score ","metadata":{}},{"cell_type":"code","source":"acc_svc=svc.score(X_test, y_test) * 100","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"acc_svc","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"### SVC matrice de cunfusion","metadata":{}},{"cell_type":"code","source":"Y_pred_s = svc.predict(X_test)","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"metrics.confusion_matrix(y_test, Y_pred_s)","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Après l'application de l'ACP","metadata":{}},{"cell_type":"code","source":"from sklearn.decomposition import PCA","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"pca = PCA(n_components=200).fit(X_train_data)","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"X_train_data = pca.transform(X_train_data)","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"pca = PCA(n_components=200).fit(test_data)","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"test_data = pca.transform(test_data)","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"test_data.shape","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"X_train_data.shape","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## Evaluation KNN ","metadata":{}},{"cell_type":"code","source":"from sklearn.model_selection import train_test_split\nX_train,X_test,y_train,y_test=train_test_split(X_train_data,y_train_data,test_size=0.27,random_state=42)","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"param_grid = {\n     'n_neighbors': [11, 31, 51, 71],\n}\n\n\ndigit_tune_grid = GridSearchCV(\n    KNeighborsClassifier(),\n    param_grid,\n    cv=5,\n    verbose = 3)","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"digit_model_grid = digit_tune_grid.fit(X_train_data, y_train_data)","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"knn = KNeighborsClassifier(n_neighbors = 11)\nknn.fit(X_train, y_train)","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## KNN score ","metadata":{}},{"cell_type":"code","source":"acc_knn_pca = knn.score(X_test, y_test) * 100","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"acc_knn_pca","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## KNN matrice de confusion","metadata":{}},{"cell_type":"code","source":"Y_pred = knn.predict(X_test)","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"metrics.confusion_matrix(y_test, Y_pred)","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## Evaluation random_forest","metadata":{}},{"cell_type":"code","source":"random_forest = RandomForestClassifier(n_estimators=200)","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## Random forest score ","metadata":{}},{"cell_type":"code","source":"random_forest.fit(X_train, y_train)\nacc_random_forest_pca = random_forest.score(X_test, y_test) * 100\nacc_random_forest_pca","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## Random forest matrice de confusion","metadata":{}},{"cell_type":"code","source":"Y_pred_random = random_forest.predict(X_test)","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"metrics.confusion_matrix(y_test, Y_pred_random)","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## Evaluation baive_bayes","metadata":{}},{"cell_type":"code","source":"gaussian = GaussianNB()\ngaussian.fit(X_train, y_train)","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"### naive_bayes score ","metadata":{}},{"cell_type":"code","source":"gaussian_pca = gaussian.score(X_test, y_test) * 100\ngaussian_pca","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"### naive_bayes martrice de confusion ","metadata":{}},{"cell_type":"code","source":"Y_pred_G = gaussian.predict(X_test)","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"metrics.confusion_matrix(y_test, Y_pred_G)","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## Evaluation svc ","metadata":{}},{"cell_type":"code","source":"svc = SVC(kernel='poly', degree=2)\nsvc.fit(X_train, y_train)","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"### score svc ","metadata":{}},{"cell_type":"code","source":"svc_pca = svc.score(X_test, y_test) * 100","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"svc_pca","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"### svc matrice de confusion","metadata":{}},{"cell_type":"code","source":"Y_pred_S = svc.predict(X_test)","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"metrics.confusion_matrix(y_test, Y_pred_S)","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Prediction","metadata":{}},{"cell_type":"markdown","source":"l'algorithme la plus performante est SVC ","metadata":{}},{"cell_type":"code","source":"sample_submission=pd.read_csv(\"/kaggle/input/digit-recognizer/sample_submission.csv\")","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"sample_submission[\"Label\"]=svc.predict(test_data)","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"sample_submission.to_csv(\"version_final.csv\")","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]}]}