{"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":"markdown","source":"# Load Libraries ","metadata":{}},{"cell_type":"code","source":"# Libraries needed for data Analysis \nimport numpy as np # linear algebra\nimport pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\n\n# # Libraries needed for model and visualization\nfrom sklearn.preprocessing import StandardScaler, LabelEncoder\nfrom sklearn.model_selection import train_test_split\nfrom sklearn.ensemble import RandomForestClassifier , AdaBoostClassifier\nfrom sklearn.neighbors import KNeighborsClassifier\nfrom sklearn.linear_model import LogisticRegression\nfrom sklearn.linear_model import SGDClassifier\nfrom sklearn.model_selection import GridSearchCV\nfrom sklearn.naive_bayes import GaussianNB\nfrom sklearn.svm import SVC\nfrom sklearn.tree import DecisionTreeClassifier \nfrom sklearn.model_selection import cross_val_score\nfrom sklearn.model_selection import KFold \nfrom xgboost import XGBClassifier\nfrom sklearn.metrics import confusion_matrix, classification_report, make_scorer, accuracy_score\nimport matplotlib.pyplot as plt # plots \nimport seaborn as sns\n\n#ignore warnings\nimport warnings\nwarnings.filterwarnings('ignore')","metadata":{"execution":{"iopub.status.busy":"2022-06-27T21:16:10.197089Z","iopub.execute_input":"2022-06-27T21:16:10.197497Z","iopub.status.idle":"2022-06-27T21:16:10.755739Z","shell.execute_reply.started":"2022-06-27T21:16:10.197408Z","shell.execute_reply":"2022-06-27T21:16:10.754824Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Read data","metadata":{}},{"cell_type":"code","source":"# Load in the red wine data from kaggle.\ndf = pd.read_csv('../input/nasa-nearest-earth-objects/neo.csv',sep=',')\n\n# Review data\nprint(df.head(10))\n# Data dimensionality (rows, colums)\nprint(df.shape)\n# Data distributing\ndf.info()\n","metadata":{"execution":{"iopub.status.busy":"2022-06-27T21:16:10.757880Z","iopub.execute_input":"2022-06-27T21:16:10.758232Z","iopub.status.idle":"2022-06-27T21:16:11.040874Z","shell.execute_reply.started":"2022-06-27T21:16:10.758197Z","shell.execute_reply":"2022-06-27T21:16:11.039673Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Check on nulls ","metadata":{}},{"cell_type":"code","source":"print('Total Null values in the dataset : ',df.isna().sum().sum())","metadata":{"execution":{"iopub.status.busy":"2022-06-27T21:16:11.042561Z","iopub.execute_input":"2022-06-27T21:16:11.043238Z","iopub.status.idle":"2022-06-27T21:16:11.108036Z","shell.execute_reply.started":"2022-06-27T21:16:11.043194Z","shell.execute_reply":"2022-06-27T21:16:11.106747Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Check on dupes","metadata":{}},{"cell_type":"code","source":"print('Total duplicate values in the dataset : ',df.duplicated().sum())","metadata":{"execution":{"iopub.status.busy":"2022-06-27T21:16:11.111607Z","iopub.execute_input":"2022-06-27T21:16:11.111987Z","iopub.status.idle":"2022-06-27T21:16:11.207010Z","shell.execute_reply.started":"2022-06-27T21:16:11.111950Z","shell.execute_reply":"2022-06-27T21:16:11.205762Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Understand the stats for each column","metadata":{}},{"cell_type":"code","source":"df.describe()","metadata":{"execution":{"iopub.status.busy":"2022-06-27T21:16:11.208516Z","iopub.execute_input":"2022-06-27T21:16:11.208954Z","iopub.status.idle":"2022-06-27T21:16:11.304728Z","shell.execute_reply.started":"2022-06-27T21:16:11.208913Z","shell.execute_reply":"2022-06-27T21:16:11.303692Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Histograms\ndf.hist(bins=10,figsize=(5, 4))\nplt.show()\n# Density\ndf.plot(kind='density', subplots=True, layout=(4,3), sharex=False)\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2022-06-27T21:16:11.306239Z","iopub.execute_input":"2022-06-27T21:16:11.306800Z","iopub.status.idle":"2022-06-27T21:16:21.166356Z","shell.execute_reply.started":"2022-06-27T21:16:11.306747Z","shell.execute_reply":"2022-06-27T21:16:21.165384Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Split into X,y, removing unwanted columns and tarnsforming Hazardous data into int from bool\n\nX = df.drop(['id','name','est_diameter_max','orbiting_body','sentry_object','hazardous'],axis=1) \n\ny = df.hazardous.astype('int')\nprint(X.shape,y.shape)","metadata":{"execution":{"iopub.status.busy":"2022-06-27T21:16:21.167832Z","iopub.execute_input":"2022-06-27T21:16:21.168940Z","iopub.status.idle":"2022-06-27T21:16:21.178886Z","shell.execute_reply.started":"2022-06-27T21:16:21.168900Z","shell.execute_reply":"2022-06-27T21:16:21.177709Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Split into Test and Train sets","metadata":{}},{"cell_type":"code","source":"# 90:10\n\nX_train, X_test, y_train, y_test = train_test_split(X,\n                                                    y, test_size = 0.1, random_state = 42)\nprint(X_train.shape), print(y_train.shape)\nprint(X_test.shape), print(y_test.shape)","metadata":{"execution":{"iopub.status.busy":"2022-06-27T21:16:21.180386Z","iopub.execute_input":"2022-06-27T21:16:21.182367Z","iopub.status.idle":"2022-06-27T21:16:21.214960Z","shell.execute_reply.started":"2022-06-27T21:16:21.182329Z","shell.execute_reply":"2022-06-27T21:16:21.213822Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# prepare configuration for cross validation test harness\nseed = 7\n# prepare models\nmodels = []\nmodels.append(('XGBClassifier', XGBClassifier())) \nmodels.append(('SupportVectorClassifier', SVC()))\nmodels.append(('RandomForestClassifier', RandomForestClassifier()))\nmodels.append(('DecisionTreeClassifier', DecisionTreeClassifier()))\nmodels.append(('AdaBoostClassifier', AdaBoostClassifier()))\nmodels.append(('KNeighborsClassifier', KNeighborsClassifier()))\nmodels.append(('GaussianNB', GaussianNB()))\nmodels.append(('LogisticRegression', LogisticRegression()))\n\n\n# evaluate each model in turn\nresults = []\nnames = []\nscoring = 'accuracy'\n\nfor name, model in models:\n   kfold = KFold(n_splits=10,shuffle=True, random_state=seed)\n   cv_results = cross_val_score(model, X_train, y_train, cv=kfold, scoring=scoring)\n   results.append(cv_results)\n   names.append(name)\n   msg = \"%s: %f (%f)\" % (name, cv_results.mean(), cv_results.std())\n   print(msg)\n# boxplot algorithm comparison\nfig = plt.figure()\nfig.suptitle('Algorithm Comparison')\nax = fig.add_subplot(111)\nplt.boxplot(results)\nax.set_xticklabels(names)\nplt.show()\n","metadata":{"execution":{"iopub.status.busy":"2022-06-27T21:16:21.216931Z","iopub.execute_input":"2022-06-27T21:16:21.217283Z","iopub.status.idle":"2022-06-27T21:26:19.879743Z","shell.execute_reply.started":"2022-06-27T21:16:21.217248Z","shell.execute_reply":"2022-06-27T21:26:19.878722Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"XGBC = XGBClassifier()\nXGBC.fit(X_train, y_train)\npred_XGBC = XGBC.predict(X_test)\naccuracy_XGBC = round(accuracy_score(pred_XGBC, y_test) * 100, 2)\nprint('Accuracy score',accuracy_XGBC)","metadata":{"execution":{"iopub.status.busy":"2022-06-27T21:26:19.883718Z","iopub.execute_input":"2022-06-27T21:26:19.884619Z","iopub.status.idle":"2022-06-27T21:26:24.192855Z","shell.execute_reply.started":"2022-06-27T21:26:19.884581Z","shell.execute_reply":"2022-06-27T21:26:24.191831Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"KNN = KNeighborsClassifier(n_neighbors = 10)\nKNN.fit(X_train, y_train)\npred_KNN = KNN.predict(X_test)\naccuracy_KNN = round(accuracy_score(pred_KNN, y_test) * 100, 2)\nprint('Accuracy score',accuracy_KNN)","metadata":{"execution":{"iopub.status.busy":"2022-06-27T21:26:24.198238Z","iopub.execute_input":"2022-06-27T21:26:24.199088Z","iopub.status.idle":"2022-06-27T21:26:24.557675Z","shell.execute_reply.started":"2022-06-27T21:26:24.199051Z","shell.execute_reply":"2022-06-27T21:26:24.556642Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"ada_classifier = AdaBoostClassifier(n_estimators=25)\nada_classifier.fit(X_train, y_train)\npred_ada = ada_classifier.predict(X_test)\n\n# Cross-validation\nscores = cross_val_score(ada_classifier,X_test,y_test, cv=3)\nprint('Accuracy score',round(scores.mean() * 100,2))","metadata":{"execution":{"iopub.status.busy":"2022-06-27T21:26:24.559440Z","iopub.execute_input":"2022-06-27T21:26:24.561058Z","iopub.status.idle":"2022-06-27T21:26:26.260696Z","shell.execute_reply.started":"2022-06-27T21:26:24.561007Z","shell.execute_reply":"2022-06-27T21:26:26.259410Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"svm_rbf = SVC(kernel= 'rbf')\nsvm_rbf.fit(X_train, y_train)\npred_svm_rbf = svm_rbf.predict(X_test)\n\n# Cross-validation\nscores = cross_val_score(svm_rbf,X_test,y_test, cv=10)\nprint('Accuracy score',round(scores.mean() * 100,2))","metadata":{"execution":{"iopub.status.busy":"2022-06-27T21:26:26.262690Z","iopub.execute_input":"2022-06-27T21:26:26.263086Z","iopub.status.idle":"2022-06-27T21:27:25.442166Z","shell.execute_reply.started":"2022-06-27T21:26:26.263046Z","shell.execute_reply":"2022-06-27T21:27:25.441142Z"},"trusted":true},"execution_count":null,"outputs":[]}]}