{"cells":[{"metadata":{"_uuid":"d629ff2d2480ee46fbb7e2d37f6b5fab8052498a","_cell_guid":"79c7e3d0-c299-4dcb-8224-4455121ee9b0","trusted":true},"cell_type":"code","source":"import numpy as np\nimport pandas as pd\nimport matplotlib.pyplot as plt\n%matplotlib inline","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"train_df = pd.read_csv(\"../input/avazu-ctr-prediction/train.gz\", nrows=100000)\nunused_cols = [\"id\", \"hour\", \"device_id\", \"device_ip\"]\nlabel_col = \"click\"\ntrain_df = train_df.drop(unused_cols, axis=1)\nX_dict_train = list(train_df.drop(label_col, axis=1).T.to_dict().values())\ny_train = train_df[label_col]","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"test_df = pd.read_csv(\"../input/avazu-ctr-prediction/train.gz\", header=0, skiprows=(1,100000), nrows=100000)\ntest_df = test_df.drop(unused_cols, axis=1)\nX_dict_test = list(test_df.T.to_dict().values())\ny_test = test_df[label_col]","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.feature_extraction import DictVectorizer\n\nvectorizer = DictVectorizer(sparse=True)\nX_train = vectorizer.fit_transform(X_dict_train)\nX_test = vectorizer.transform(X_dict_test)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.linear_model import LogisticRegression\n\nclf = LogisticRegression()\nclf.fit(X_train, y_train)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.model_selection import GridSearchCV\n\nparameters = {'C': [0.01, 0.1, 1, 10, 100], \"penalty\": [\"l1\", \"l2\"]}\ngrid_search = GridSearchCV(clf, parameters, n_jobs=-1, cv=3, scoring=\"roc_auc\")\ngrid_search.fit(X_train, y_train)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"grid_search.best_params_","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"clf_best = grid_search.best_estimator_","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"y_pred = clf_best.predict(X_test)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.metrics import accuracy_score, confusion_matrix, roc_auc_score, roc_curve\n\naccuracy_score(y_test, y_pred)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"confusion_matrix(y_test, y_pred)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"y_pred_proba = clf_best.predict_proba(X_test)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"y_pred_proba[:,0]","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"fpr, tpr, _ = roc_curve(y_test, y_pred_proba[:,0])\nauc = roc_auc_score(y_test, y_pred_proba[:,0])\nplt.plot(fpr, tpr, \"r-\", label=\"LogisticRegression\")","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"auc","execution_count":null,"outputs":[]}],"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":4,"nbformat_minor":4}