Skip to content

Instantly share code, notes, and snippets.

@abap34
Created March 22, 2021 14:33
Show Gist options
  • Save abap34/7af06c7a53d59e79a6f1f647bb32892f to your computer and use it in GitHub Desktop.
Save abap34/7af06c7a53d59e79a6f1f647bb32892f to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/lightgbm/__init__.py:48: UserWarning: Starting from version 2.2.1, the library file in distribution wheels for macOS is built by the Apple Clang (Xcode_8.3.3) compiler.\n",
"This means that in case of installing LightGBM from PyPI via the ``pip install lightgbm`` command, you don't need to install the gcc compiler anymore.\n",
"Instead of that, you need to install the OpenMP library, which is required for running LightGBM on the system with the Apple Clang compiler.\n",
"You can install the OpenMP library by the following command: ``brew install libomp``.\n",
" \"You can install the OpenMP library by the following command: ``brew install libomp``.\", UserWarning)\n"
]
}
],
"source": [
"import pandas as pd\n",
"import numpy as np\n",
"from sklearn.model_selection import StratifiedKFold\n",
"from sklearn.metrics import accuracy_score\n",
"import lightgbm as lgb\n",
"import optuna\n",
"import matplotlib.pyplot as plt\n",
"import seaborn as sns"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"train = pd.read_table('../data/raw/train.tsv')\n",
"test = pd.read_table('../data/raw/test.tsv')\n",
"submit = pd.read_csv('../data/raw/sample_submit.csv', header=None)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"def get_swap_dict(d):\n",
" return {v: k for k, v in d.items()}"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"cat_col = ['buying', 'maint', 'doors', 'persons', 'lug_boot', 'safety']"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"buying \n",
" 水準数: 4 ['high' 'low' 'med' 'vhigh']\n",
"maint \n",
" 水準数: 4 ['high' 'low' 'med' 'vhigh']\n",
"doors \n",
" 水準数: 4 ['2' '3' '4' '5more']\n",
"persons \n",
" 水準数: 3 ['2' '4' 'more']\n",
"lug_boot \n",
" 水準数: 3 ['big' 'med' 'small']\n",
"safety \n",
" 水準数: 3 ['high' 'low' 'med']\n"
]
}
],
"source": [
"for col in cat_col:\n",
" val = np.unique(train[col].values)\n",
" print(col, '\\n 水準数:', len(val), val)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"transform_table = {\n",
" 'buying':{\n",
" 'low':0,\n",
" 'med':1,\n",
" 'high':2,\n",
" 'vhigh':3\n",
" },\n",
" 'maint':{\n",
" 'low':0,\n",
" 'med':1,\n",
" 'high':2,\n",
" 'vhigh':3\n",
" },\n",
" 'doors':{\n",
" '2':0,\n",
" '3':1,\n",
" '4':2,\n",
" '5more':3\n",
" },\n",
" 'persons':{\n",
" '2':0,\n",
" '4':1,\n",
" 'more':2\n",
" },\n",
" 'lug_boot':{\n",
" 'small':0,\n",
" 'med':1,\n",
" 'big':2\n",
" },\n",
" 'safety':{\n",
" 'low':0,\n",
" 'med':1,\n",
" 'high':2\n",
" }\n",
"}"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"train_y = train['class']\n",
"train_x = train.drop(['class', 'id'], axis=1)\n",
"test_x = test.drop(['id'], axis=1)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"label_transform_table = {\n",
" 'unacc':0.,\n",
" 'acc':1.,\n",
" 'good':2.,\n",
" 'vgood':3.\n",
"}"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
"train_y = train_y.replace(label_transform_table)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"replace buying\n",
"replace maint\n",
"replace doors\n",
"replace persons\n",
"replace lug_boot\n",
"replace safety\n"
]
}
],
"source": [
"for col in cat_col:\n",
" print('replace', col)\n",
" train_x[col] = train[col].replace(transform_table[col])\n",
" test_x[col] = test[col].replace(transform_table[col])"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f903c3162b0>"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.distplot(train_y)"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [],
"source": [
"kf = StratifiedKFold(n_splits=4, shuffle=True, random_state=0)"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [],
"source": [
"class ThresholdsOptimizer:\n",
" def __init__(self, y_true, y_pred):\n",
" self.y_true = y_true\n",
" self.y_pred = y_pred\n",
" self.labels = np.unique(y_true)\n",
"\n",
" def __call__(self, trial):\n",
" thresholds = []\n",
" for i in range(len(self.labels) - 1):\n",
" low = max(thresholds) if i > 0 else min(self.labels)\n",
" high = max(self.labels)\n",
" t = trial.suggest_uniform(f't{i}', low, high)\n",
" thresholds.append(t)\n",
" opt_y_pred = self.adjust(self.y_pred, thresholds)\n",
" return accuracy_score(self.y_true, opt_y_pred)\n",
"\n",
" def adjust(self, y_pred, thresholds):\n",
" opt_y_pred = pd.cut(y_pred,\n",
" [-np.inf] + thresholds + [np.inf],\n",
" labels=self.labels)\n",
" return opt_y_pred\n"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [],
"source": [
"optuna.logging.set_verbosity(optuna.logging.WARNING)"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"------------------------\n",
"start 0\n",
"finish train.\n"
]
},
{
"data": {
"image/png": "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wPDhw6N6hKTiICLSSU880fojZ1JTU3nmmWdaXXaizyA/P5/Vq1efnP+P//iPJ98/8sgjLdoDTJ8+/eTgednZ2Tz33HMkJSXxxhtvsGzZstNOU0WaioOISBzYtm0b1113HU1NTaSkpPDAAw9EdXsqDiIicaC0tLRXhyJXh7SIiLSg4iAiIi2oOIiISAsqDiIi0oKKg4iItKDiICISBYMGDQJg586dfOITn2i1TVlZGcuXL29zHd/+9rcZOXLkyXX1JhUHEZEoKiwsPDkcd1d99KMf5c0334xwRJ2j+xxEJP48Mx92r2p1UXpjAyR241fb8Mlw1ffaXDx//nxGjhzJLbfcAsBdd91FUlISL730EocOHaK+vp7vfve7zJ0797TPbdmyhY985COsXr2a2tpaPve5z7Fy5UrOOuusNgfeOyEaw3B0loqDiEgnXH/99Xzta187WRyeeuopnnvuOW677TYGDx7M/v37mTVrFnPmzMHMWl3Hz372MzIyMli3bh3vvvsu06ZN681d6JK4Kw61DR7rEEQk1tr5C782SkN2T506lb1797Jz50727dtHbm4uw4cP5+tf/zqvvPIKCQkJVFRUsGfPHoYPH97qOl555RVuu+02AM455xzOOeeciMcZKXFXHA7WqTiISGx88pOfZNGiRezevZvrr7+exx9/nH379rFixQqSk5MZM2ZMq89xiEdx1yHd0ATuKhAi0vuuv/56Fi5cyKJFi/jkJz9JZWUlQ4cOJTk5mZdeeomtW7e2+/lLLrnk5Miuq1ev5t133+2NsLsl7oqDA1V1sXkykogMbBMnTqS6upqioiJGjBjBpz/9aZYvX87kyZN59NFHOeuss9r9/Fe/+lVqamo4++yzueOOOzjvvPPabf/Nb36T4uJijh49SnFxMXfddVcE96Z9UT2tZGazgR8DicCD7v69ZstvBv4NqAjN+qm7P9jRendX1pGdnhzhaEVEOrZq1amrpPLz83njjTdabVdTUwPAmDFjTj7HIT09nYULF3Z6W/feey/33ntvD6LtvqgdOZhZInAfcBUwAbjRzCa00vSX7j4l9OqwMORTyc7K9i//EhGRnonmkcNMYKO7bwIws4XAXGBtT1aaZ1XsruwfHT4iIgDnn38+x44dO23eY489xuTJk2MUUXSLQxGwPWx6B3B+K+2uNbNLgL8CX3f37c0bmNk8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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"optimize thresholds...\n",
"Optimized thresholds: [0.47383580929046887, 1.4572019204564708, 2.349379250996088]\n",
"acc: 0.9629629629629629\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"------------------------\n",
"start 1\n",
"finish train.\n"
]
},
{
"data": {
"image/png": "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06bx29/+ljFjxjB69GhOPfXUTt/+LbfcwlVXXcUjjzzCaaedxsCBAzvtKEdBICLSRo899liT81NTU3nuueeaXFZ3HiA3N5eVK1cenf/DH/7w6PsHH3zwM+0BTjrppKNfDMvKymLhwoUkJSWxePFilixZ0mCo6VgoCEREYsDmzZu5/PLLqa2tJSUlhfvuu6/T1q0gEBGJAaNGjWLZsmURWbdOFouIxDkFgYhInFMQiIjEOQWBiEicUxCIiMQ5BYGISAT07t0bgG3btvHVr361yTbFxcUsXbq02XX89Kc/ZciQIUfXFSkKAhGRCBo8ePDRW0y316WXXsrbb7/dyRV9lr5HICKx57lZ8On7bW7eq6YaElv5czdwPFx4R7OLZ82axZAhQ7jxxhsBuPXWW0lKSuLll19mz549VFVV8fOf/5wZMxo+mn3jxo1ccsklrFy5kkOHDvHNb36T9957j+OPP77Zm87VicStKpqiIBARaYMrrriC733ve0eD4Mknn2ThwoXcfPPN9OnTh507d3Lqqacyffr0Zh8g/5vf/Ib09HRWr17NihUrmDx5clfuQrNiLgiSqg9GuwQRibYW/uXelEOdcBvqE088kR07drBt2zbKysro27cvAwcO5Pvf/z6LFi0iISGBrVu3sn37dgYOHNjkOhYtWsTNN98MwIQJE5gwYcIx1dRZYi4IUg93zqPZRETa67LLLmPevHl8+umnXHHFFTz66KOUlZXxzjvvkJycTGFhYZPPIejuYu5kcYJXg3u0yxCROHTFFVcwd+5c5s2bx2WXXca+ffvo378/ycnJvPzyy2zatKnFz5999tlH72C6cuVKVqxY0RVltyrmggCvhYO7o12FiMShcePGUV5eTn5+PoMGDeKaa65h6dKljB8/nocffpjjjz++xc/fcMMNVFRUMGbMGGbPns2UKVNabP+jH/2IgoICDh48SEFBAbfeemsn7k29mBsaAmDfZsjIab2diEgne//9+quVcnNzWbx4cZPtKioqACgsLDz6HIJevXoxd+7cNm/rzjvv5M477zyGatsm9o4IAPaVRrsCEZEeIzaPCPZuiXYFIiKd5pRTTuHw4cMN5j3yyCOMHz++S7Yfc0HgJOiIQCROuXuz1+jHsrfeeqvT1uUduJgmokNDZjbNzNaY2Tozm9XE8uvMrMzMlode17e2ziMkBecIRCSu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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"optimize thresholds...\n",
"Optimized thresholds: [0.48029032964743384, 1.6934347194352715, 1.9443377695062845]\n",
"acc: 0.9675925925925926\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAD4CAYAAAD8Zh1EAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+j8jraAAAgAElEQVR4nO3dd3xc5Z3v8c9vijTqXbKs4i53bGO5YEroGAglWRIMgSQshGUJG0KyezfJ5aZwU0hukt0EkhAChLL0bsAUgw22wU24YVvuXV0a9TbtuX/M2JGFZI3kkUY+/r1fr3lp5pxnzvlpMF+dec5zniPGGJRSSp36bNEuQCmlVGRooCullEVooCullEVooCullEVooCullEU4orXjzMxMM3r06GjtXimlTkmffvpprTEmq6d1UQv00aNHU1JSEq3dK6XUKUlEDva2TrtclFLKIjTQlVLKIjTQlVLKIjTQlVLKIvoMdBFxicg6EdksIttE5Gc9tPmmiNSIyKbQ47bBKVcppVRvwhnl0glcaIxpEREnsEpE3jbGrOnW7nljzF2RL1EppVQ4+gx0E5yOsSX00hl66BSNSik1zITVhy4idhHZBFQDS40xa3to9k8iskVEXhKRgl62c7uIlIhISU1NzUmUrZRSqruwAt0Y4zfGzATygbkiMq1bkzeA0caYM4ClwBO9bOdhY0yxMaY4K6vHC52UUkoNUL+uFDXGNIjIcmAhsLXL8rouzR4BfhOZ8iym5O8De1/xLZGtQyllSeGMcskSkdTQ8zjgEmBHtza5XV5eDZRGskillFJ9C+cIPRd4QkTsBP8AvGCMeVNE7gNKjDGLge+IyNWAD3AD3xysgpVSSvUsnFEuW4BZPSz/cZfnPwR+GNnSlFJK9YdeKaqUUhahga6UUhahga6UUhahga6UUhahga6UUhahga6UUhahga6UUhahga6UUhahga6UUhahga6UUhahga6UUhahga6UUhahga6UUhahga6UUhahga6UUhahga6UUhahga6UUhahga6UUhahga6UUhahga6UUhahga6UUhbRZ6CLiEtE1onIZhHZJiI/66FNrIg8LyJ7RGStiIwejGKVUkr1Lpwj9E7gQmPMDGAmsFBE5ndrcytQb4wZD/wX8OvIlqmUUqovfQa6CWoJvXSGHqZbs2uAJ0LP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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"------------------------\n",
"start 2\n",
"finish train.\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"optimize thresholds...\n",
"Optimized thresholds: [0.5896665831576254, 1.476209861297485, 2.44537946800068]\n",
"acc: 0.9768518518518519\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"------------------------\n",
"start 3\n",
"finish train.\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"optimize thresholds...\n",
"Optimized thresholds: [0.42799089565328907, 1.6615204565105304, 2.325759620371778]\n",
"acc: 0.9583333333333334\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"-----\n",
"score: 0.9664351851851852\n"
]
}
],
"source": [
"scores = []\n",
"preds = pd.DataFrame(np.zeros((test.shape[0], 4)))\n",
"for fold, (train_idx, val_idx) in enumerate(kf.split(train_x, train_y)):\n",
" print('------------------------')\n",
" print('start', fold)\n",
" train_x_fold, train_y_fold = train_x.iloc[train_idx], train_y.iloc[train_idx]\n",
" val_x_fold, val_y_fold = train_x.iloc[val_idx], train_y.iloc[val_idx]\n",
" \n",
" model = lgb.LGBMRegressor(\n",
" n_estimators=10000,\n",
" learning_rate=0.05,\n",
" num_leaves=123,\n",
" colsample_bytree=.8,\n",
" subsample=.9,\n",
" max_depth=10,\n",
" reg_alpha=.1,\n",
" reg_lambda=.1,\n",
" min_split_gain=.01,\n",
" min_child_weight=2\n",
" )\n",
" \n",
" model.fit(\n",
" train_x_fold, train_y_fold, \n",
" eval_set = [(train_x_fold, train_y_fold), (val_x_fold, val_y_fold)],\n",
" verbose=0,\n",
" early_stopping_rounds=150\n",
" )\n",
" \n",
" print('finish train.')\n",
" lgb.plot_metric(model)\n",
" plt.show()\n",
" val_pred_raw = model.predict(val_x_fold)\n",
" print('optimize thresholds...')\n",
" objective = ThresholdsOptimizer(val_y_fold, val_pred_raw)\n",
" study = optuna.create_study(direction='maximize')\n",
" study.optimize(objective, timeout=30)\n",
" best_thresholds = sorted(study.best_params.values())\n",
" print(f'Optimized thresholds:', best_thresholds)\n",
" val_pred = objective.adjust(val_pred_raw, best_thresholds)\n",
" score = accuracy_score(val_y_fold, val_pred)\n",
" print('acc:', score)\n",
" scores.append(score)\n",
" \n",
" pred_raw = model.predict(test_x)\n",
" sns.distplot(pred_raw)\n",
" pred = objective.adjust(pred_raw, best_thresholds)\n",
" sns.distplot(pred)\n",
" plt.show()\n",
" preds.iloc[:, fold] = pred\n",
"\n",
" \n",
"\n",
"print('-----')\n",
"print('score:', np.mean(scores))\n",
" "
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [],
"source": [
"submit.iloc[:, 1] = preds.mode(axis=1).iloc[:, 0]"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [],
"source": [
"submit.iloc[:, 1] = submit.iloc[:, 1].replace(get_swap_dict(label_transform_table))"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>0</th>\n",
" <th>1</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1</td>\n",
" <td>unacc</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2</td>\n",
" <td>unacc</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>4</td>\n",
" <td>unacc</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>5</td>\n",
" <td>acc</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>6</td>\n",
" <td>unacc</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>859</th>\n",
" <td>1718</td>\n",
" <td>unacc</td>\n",
" </tr>\n",
" <tr>\n",
" <th>860</th>\n",
" <td>1719</td>\n",
" <td>unacc</td>\n",
" </tr>\n",
" <tr>\n",
" <th>861</th>\n",
" <td>1720</td>\n",
" <td>unacc</td>\n",
" </tr>\n",
" <tr>\n",
" <th>862</th>\n",
" <td>1723</td>\n",
" <td>unacc</td>\n",
" </tr>\n",
" <tr>\n",
" <th>863</th>\n",
" <td>1727</td>\n",
" <td>unacc</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>864 rows × 2 columns</p>\n",
"</div>"
],
"text/plain": [
" 0 1\n",
"0 1 unacc\n",
"1 2 unacc\n",
"2 4 unacc\n",
"3 5 acc\n",
"4 6 unacc\n",
".. ... ...\n",
"859 1718 unacc\n",
"860 1719 unacc\n",
"861 1720 unacc\n",
"862 1723 unacc\n",
"863 1727 unacc\n",
"\n",
"[864 rows x 2 columns]"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"submit"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [],
"source": [
"submit.to_csv('../submit/submit.csv', index=False, header=False)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.2"
},
"widgets": {
"application/vnd.jupyter.widget-state+json": {
"state": {},
"version_major": 2,
"version_minor": 0
}
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment