{"cells":[{"metadata":{"trusted":true,"_uuid":"f7b31b4ff4f95b591758c5e615e13c833adc5fa7"},"cell_type":"code","source":"# Natural Language Processing\n\n# Importing the libraries\nimport numpy as np\nimport matplotlib.pyplot as plt\nimport pandas as pd\nimport os\nimport json\nimport string\nfrom pandas.io.json import json_normalize\nimport matplotlib.pyplot as plt\nimport seaborn as sns\ncolor = sns.color_palette()\n\nfrom keras import backend as K\nfrom keras.preprocessing.text import Tokenizer\nfrom keras.preprocessing.sequence import pad_sequences\nfrom keras.layers import Dense, Input, LSTM, Embedding, Dropout, Activation, CuDNNGRU, GlobalAvgPool1D, concatenate\nfrom keras.layers import Bidirectional, GlobalMaxPool1D\nfrom keras.models import Model\nfrom keras import initializers, regularizers, constraints, optimizers, layers\nfrom sklearn import model_selection\n\n","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"f3a34f8b757efb305065e1f250885d011ce302a6"},"cell_type":"code","source":"train_df = pd.read_csv(\"../input/train.csv\")\ntest_df = pd.read_csv(\"../input/test.csv\")\nsample_submission = pd.read_csv(\"../input/sample_submission.csv\")\n## Parameters \nembed_size = 300 # how big is each word vector\nmax_features = 60000 # how many unique words to use (i.e num rows in embedding vector)\nmaxlen = 26 # max number of words in a question to use\nbatch_size = 3636\n\n## fill up the missing values\ntrain_X = train_df[\"question_text\"].fillna(\"_na_\").values\ntest_X = test_df[\"question_text\"].fillna(\"_na_\").values\n\n## Tokenize the sentences\ntokenizer = Tokenizer(num_words=max_features)\ntokenizer.fit_on_texts(list(train_X))\ntrain_X = tokenizer.texts_to_sequences(train_X)\ntest_X = tokenizer.texts_to_sequences(test_X)\n\n## Pad the sentences \ntrain_X = pad_sequences(train_X, maxlen=maxlen)\ntest_X = pad_sequences(test_X, maxlen=maxlen)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"5b86f97c48f0f6353a2a6db0c5aef50ce7dc0f50"},"cell_type":"code","source":"train_y = train_df['target'].values","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"f23c3c4ced9a7d86ab2d583e4542ea6411c89b9d"},"cell_type":"code","source":"# Fitting Naive Bayes to the Training set\nfrom sklearn.naive_bayes import GaussianNB\nclassifier = GaussianNB()\nclassifier.fit(train_X, train_y)\n\n# Predicting the Test set results\ny_pred = classifier.predict(train_X)\n\n# Making the Confusion Matrix\nfrom sklearn.metrics import confusion_matrix\ncm = confusion_matrix(train_y, y_pred)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"66fcdd4534ad3e2814f719b83678173fbb066805"},"cell_type":"code","source":"from sklearn.metrics import accuracy_score\n\nacc = accuracy_score(train_y, y_pred)\n\nprint(\"Accuracy on the Quora dataset: {:.2f}\".format(acc*100))","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"e4f0a30250a871de9ade9144eaf138610b5284c4"},"cell_type":"code","source":"from sklearn.metrics import classification_report\ntarget_names = ['0','1']\nprint(classification_report(train_y, y_pred, target_names=target_names))","execution_count":null,"outputs":[]},{"metadata":{"trusted":false,"_uuid":"42e02811e0058f16a15405a92ba1e2bf312319d5"},"cell_type":"code","source":"ids = test_df[\"qid\"]","execution_count":null,"outputs":[]},{"metadata":{"trusted":false,"_uuid":"7c9aaa5640c2683c52de288fe673341400b71ac6"},"cell_type":"code","source":"target = classifier.predict(test_X)","execution_count":null,"outputs":[]},{"metadata":{"trusted":false,"_uuid":"df806fa66179e9f12fa44494e192edf082a1b57e"},"cell_type":"code","source":"sample_submission[\"prediction\"]=target","execution_count":null,"outputs":[]},{"metadata":{"trusted":false,"_uuid":"3f30edc8e65b5635ea0899921302cf8a30727782"},"cell_type":"code","source":"sample_submission.to_csv(\"sample_submission.csv\")","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"af85f4551417d9a57102fe8eb7f79ddcf93a9d9d"},"cell_type":"code","source":"from sklearn.model_selection import train_test_split # to split the data into two parts\nfrom sklearn.cross_validation import KFold # use for cross validation\nfrom sklearn.model_selection import GridSearchCV# for tuning parameter\nfrom sklearn.naive_bayes import GaussianNB\nfrom sklearn.ensemble import AdaBoostClassifier\nfrom sklearn.ensemble import GradientBoostingClassifier\nfrom sklearn import metrics # for the check the error and accuracy of the model\n# Any results you write to the current directory are saved as output.\n# dont worry about the error if its not working then insteda of model_selection we can use cross_validation","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"5cd3b4be89d53257bb9a01117547f8eb8fc316c1"},"cell_type":"code","source":"# Fitting Naive Bayes to the Training set\nfrom sklearn.naive_bayes import GaussianNB\nclassifier = GaussianNB()\nclassifier.fit(train_X, train_y)\n\n# Predicting the Test set results\ny_pred = classifier.predict(train_X)\n\n# Making the Confusion Matrix\nfrom sklearn.metrics import confusion_matrix\nprint(metrics.accuracy_score(y_pred,train_y))","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"763dd943eed8867a31d952304a13c63a9f512588"},"cell_type":"code","source":"from sklearn.ensemble import AdaBoostClassifier #For Classification\nfrom sklearn.ensemble import AdaBoostRegressor #For Regression\nfrom sklearn.tree import DecisionTreeClassifier\ndt = DecisionTreeClassifier() \nclf = AdaBoostClassifier(n_estimators=100, base_estimator=dt,learning_rate=1)\n#Above I have used decision tree as a base estimator, you can use any ML learner as base estimator if it ac# cepts sample weight \nclf.fit(train_X, train_y)\n# Predicting the Test set results\ny_pred = clf.predict(train_X)\n\n# Making the Confusion Matrix\nfrom sklearn.metrics import confusion_matrix\nprint(metrics.accuracy_score(y_pred,train_y))","execution_count":null,"outputs":[]},{"metadata":{"trusted":false,"_uuid":"d54ea20f7fa4ebd568b5f1c5164838ffaed062c1"},"cell_type":"code","source":"from sklearn.ensemble import VotingClassifier\nfrom sklearn import model_selection\neclf1 = VotingClassifier(estimators=[('model_GaussianNB', classifier), ('model_svc', model_svc), ('model_knn', model_knn)], voting='hard')\neclf1 = eclf1.fit(test_X, train_y)\nprediction=eclf1.predict(test_X)\nprint(metrics.accuracy_score(prediction,train_y),\"voting classifier hard method\")","execution_count":null,"outputs":[]},{"metadata":{"trusted":false,"_uuid":"66b7ded9f5434886c5c2af209424f590e6f0c889"},"cell_type":"code","source":"","execution_count":null,"outputs":[]}],"metadata":{"kernelspec":{"display_name":"Python 3","language":"python","name":"python3"},"language_info":{"name":"python","version":"3.6.6","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"}},"nbformat":4,"nbformat_minor":1}