{
  "id": 116771,
  "title": "[HW4]Seong Min Wi",
  "url": "/competitions/2019-fall-pr-project/discussion/116771",
  "author_name": "Seong Min Wi(X)",
  "post_date": "2019-11-11T11:14:57.189000",
  "votes": 0,
  "comment_count": 0,
  "views": 0,
  "content": "<h2>1. 사용되는 라이브러리</h2>\n\n<p>```\nfrom sklearn.model_selection import train_test_split\nfrom imutils import paths\nimport numpy as np\nimport imutils \nimport cv2 \nimport os\nimport glob\nimport matplotlib.pyplot as plt</p>\n\n<p>import warnings\nwarnings.filterwarnings('ignore')\n```</p>\n\n<h2>2. 데이터</h2>\n\n<p>&gt; - os의 listdir을 이용해 파일 목록(파일명)을 읽어들여 cat과 dog를 분리한다.(lable 구별)</p>\n\n<p>&gt; - RGB 컬러 영상과 Grayscale 흑백 영상 모두를 이용해봤는데 성능 면에서 큰 차이가 없어 연산량이 훨씬 적은 흑백 영상 이용</p>\n\n<p>2-1. 학습 데이터 준비\n```\ndataset_train = \"/content/input2/train/train/\"</p>\n\n<p>imgs_train = []\nlabel_train = []</p>\n\n<p>for img_path in os.listdir(dataset_train):\n  if str.find(img_path, 'cat'):\n    label_train.append(0)\n  else:\n    label_train.append(1)\n  img = cv2.imread(dataset_train+img_path)\n  data = cv2.resize(cv2.cvtColor(img,cv2.COLOR_BGR2GRAY), (32, 32))\n  data = np.reshape(data, -1)\n  imgs_train.append(data)</p>\n\n<p>```\n2-2. 데이터 셋 서브 샘플링 &amp; Train-Validation 나누기</p>\n\n<p>&gt; - StandardScaler를 사용해 각 틍성의 분산이 1이 되도록 스케일 조정\n&gt; - train 시 75%를 다 사용하게 되면 학습시간이 너무 오래걸려 10%만 사용</p>\n\n<p>```\nfrom sklearn.preprocessing import StandardScaler, MinMaxScaler</p>\n\n<p>x_train, x_test, y_train, y_test = train_test_split(imgs_train, label_train, test_size=0.10, random_state=42)</p>\n\n<p>scaler = StandardScaler()</p>\n\n<h1>scaler = MinMaxScaler</h1>\n\n<p>x_train = scaler.fit_transform(x_train)\nx_test = scaler.fit_transform(x_test)\n<code>\n2-3. 테스트 데이터 준비\n</code>\ndataset_test = \"/content/input2/test1/test1/\"</p>\n\n<p>imgs_test = []\ntest_id = []</p>\n\n<p>for img_path in os.listdir(dataset_test):\n  iid, _ = img_path.split('.')\n  iid = int(iid)\n  test_id.append(iid)\n  img = cv2.imread(dataset_test+img_path)\n  data = cv2.resize(cv2.cvtColor(img,cv2.COLOR_BGR2GRAY), (32, 32))\n  data = np.reshape(data, -1)\n  imgs_test.append(data)\n```</p>\n\n<h2>3. 모델 설계</h2>\n\n<p>&gt; - Classifier로 SVM사용\n&gt; - Grid Search를 통해 파라미터 설정</p>\n\n<p>```\nfrom sklearn.metrics import classification_report\nfrom sklearn.svm import SVC\nfrom sklearn.model_selection import GridSearchCV</p>\n\n<p>clf = SVC(kernel='rbf', class_weight='balanced', random_state=42)</p>\n\n<p>param_grid = {'C':[0.01, 0.1, 0.5, 1, 5, 10], 'gamma':[0.01, 0.1,1, 5,10, 50]}</p>\n\n<p>clf = GridSearchCV(clf, param_grid, cv=3)</p>\n\n<h1>clf.fit(x_train, y_train)</h1>\n\n<p>clf.fit(x_test, y_test)</p>\n\n<p>model = clf.best_estimator_</p>\n\n<p>print(clf.best_params_)</p>\n\n<p>y_predict = model.predict(x_test)</p>\n\n<p>score = classification_report(y_test, y_predict)\n```\n<img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F3879592%2Fe49622b9009e00a22837595a850fbe04%2F4_grid.PNG?generation=1573475961909240&amp;alt=media\" alt=\"\"></p>\n\n<h2>4. 결과 예측 및 분석</h2>\n\n<p><code>\nresult = model.predict(imgs_test)\nresult\nprint(score)\n</code>\n<img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F3879592%2F570ae299d59a93aaa86770c22a8c0966%2F4_result.PNG?generation=1573475828067918&amp;alt=media\" alt=\"\"></p>\n\n<h2>5. Kaggle 제출</h2>\n\n<p>&gt; - Pandas의 DataFrame을 csv 파일로 저장시 'header=False' 옵션을 선택하면 DataFrame의 Index 명 과 Column 명이 날라가기 때문에 원 코드 그대로 케글에 전송할 시 오류가 난다\n&gt; - 따라서 'header=False' 옵션을 그대로 쓰거나 'header=True' 옵션을 쓰는 두가지 방법이 있는데 필자는 전자를 사용하였다.\n&gt; - 'header=False' 옵션을 선택하면 강제로 'id' 와 'lable'을 index와 column의 value로 넣어줘야되는 trick을 써야 된다.</p>\n\n<p>```\nimport pandas as pd\nresult = result\nprint(result.shape)\nprint(result)\ndf = pd.DataFrame(result)\ndf.index = df.index+1\ndf = df.replace('dog',1)\ndf = df.replace('cat',0)</p>\n\n<p>print(df)\nf = ['label']\ndf2 = pd.DataFrame(f,index=['id'])</p>\n\n<p>print(df2)\ndf3 = df2.append(df)\nprint(df3)\ndf3.to_csv('results-sm-v6.csv',index=True, header=False)\n! kaggle competitions submit -c 2019-fall-pr-project -f results-sm-v6.csv -m \"smwi-1102\"\n```\ndf\n<img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F3879592%2F391e0981c0d79c7e94d85fcbe9be73d5%2F4_df.PNG?generation=1573479724054066&amp;alt=media\" alt=\"\">\ndf2\n<img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F3879592%2F80de08660c286a555edd64adf5e51e24%2F4_df2.PNG?generation=1573479773368128&amp;alt=media\" alt=\"\">\ndf3\n<img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F3879592%2Fe25e4a9843d37f0dc0cb86397524bd6e%2F4_df3.PNG?generation=1573479809042305&amp;alt=media\" alt=\"\"></p>",
  "messages": [
    {
      "id": 670356,
      "postDate": "2019-11-11T11:14:57.190Z",
      "content": "<h2>1. 사용되는 라이브러리</h2>\n\n<p>```\nfrom sklearn.model_selection import train_test_split\nfrom imutils import paths\nimport numpy as np\nimport imutils \nimport cv2 \nimport os\nimport glob\nimport matplotlib.pyplot as plt</p>\n\n<p>import warnings\nwarnings.filterwarnings('ignore')\n```</p>\n\n<h2>2. 데이터</h2>\n\n<p>&gt; - os의 listdir을 이용해 파일 목록(파일명)을 읽어들여 cat과 dog를 분리한다.(lable 구별)</p>\n\n<p>&gt; - RGB 컬러 영상과 Grayscale 흑백 영상 모두를 이용해봤는데 성능 면에서 큰 차이가 없어 연산량이 훨씬 적은 흑백 영상 이용</p>\n\n<p>2-1. 학습 데이터 준비\n```\ndataset_train = \"/content/input2/train/train/\"</p>\n\n<p>imgs_train = []\nlabel_train = []</p>\n\n<p>for img_path in os.listdir(dataset_train):\n  if str.find(img_path, 'cat'):\n    label_train.append(0)\n  else:\n    label_train.append(1)\n  img = cv2.imread(dataset_train+img_path)\n  data = cv2.resize(cv2.cvtColor(img,cv2.COLOR_BGR2GRAY), (32, 32))\n  data = np.reshape(data, -1)\n  imgs_train.append(data)</p>\n\n<p>```\n2-2. 데이터 셋 서브 샘플링 &amp; Train-Validation 나누기</p>\n\n<p>&gt; - StandardScaler를 사용해 각 틍성의 분산이 1이 되도록 스케일 조정\n&gt; - train 시 75%를 다 사용하게 되면 학습시간이 너무 오래걸려 10%만 사용</p>\n\n<p>```\nfrom sklearn.preprocessing import StandardScaler, MinMaxScaler</p>\n\n<p>x_train, x_test, y_train, y_test = train_test_split(imgs_train, label_train, test_size=0.10, random_state=42)</p>\n\n<p>scaler = StandardScaler()</p>\n\n<h1>scaler = MinMaxScaler</h1>\n\n<p>x_train = scaler.fit_transform(x_train)\nx_test = scaler.fit_transform(x_test)\n<code>\n2-3. 테스트 데이터 준비\n</code>\ndataset_test = \"/content/input2/test1/test1/\"</p>\n\n<p>imgs_test = []\ntest_id = []</p>\n\n<p>for img_path in os.listdir(dataset_test):\n  iid, _ = img_path.split('.')\n  iid = int(iid)\n  test_id.append(iid)\n  img = cv2.imread(dataset_test+img_path)\n  data = cv2.resize(cv2.cvtColor(img,cv2.COLOR_BGR2GRAY), (32, 32))\n  data = np.reshape(data, -1)\n  imgs_test.append(data)\n```</p>\n\n<h2>3. 모델 설계</h2>\n\n<p>&gt; - Classifier로 SVM사용\n&gt; - Grid Search를 통해 파라미터 설정</p>\n\n<p>```\nfrom sklearn.metrics import classification_report\nfrom sklearn.svm import SVC\nfrom sklearn.model_selection import GridSearchCV</p>\n\n<p>clf = SVC(kernel='rbf', class_weight='balanced', random_state=42)</p>\n\n<p>param_grid = {'C':[0.01, 0.1, 0.5, 1, 5, 10], 'gamma':[0.01, 0.1,1, 5,10, 50]}</p>\n\n<p>clf = GridSearchCV(clf, param_grid, cv=3)</p>\n\n<h1>clf.fit(x_train, y_train)</h1>\n\n<p>clf.fit(x_test, y_test)</p>\n\n<p>model = clf.best_estimator_</p>\n\n<p>print(clf.best_params_)</p>\n\n<p>y_predict = model.predict(x_test)</p>\n\n<p>score = classification_report(y_test, y_predict)\n```\n<img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F3879592%2Fe49622b9009e00a22837595a850fbe04%2F4_grid.PNG?generation=1573475961909240&amp;alt=media\" alt=\"\"></p>\n\n<h2>4. 결과 예측 및 분석</h2>\n\n<p><code>\nresult = model.predict(imgs_test)\nresult\nprint(score)\n</code>\n<img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F3879592%2F570ae299d59a93aaa86770c22a8c0966%2F4_result.PNG?generation=1573475828067918&amp;alt=media\" alt=\"\"></p>\n\n<h2>5. Kaggle 제출</h2>\n\n<p>&gt; - Pandas의 DataFrame을 csv 파일로 저장시 'header=False' 옵션을 선택하면 DataFrame의 Index 명 과 Column 명이 날라가기 때문에 원 코드 그대로 케글에 전송할 시 오류가 난다\n&gt; - 따라서 'header=False' 옵션을 그대로 쓰거나 'header=True' 옵션을 쓰는 두가지 방법이 있는데 필자는 전자를 사용하였다.\n&gt; - 'header=False' 옵션을 선택하면 강제로 'id' 와 'lable'을 index와 column의 value로 넣어줘야되는 trick을 써야 된다.</p>\n\n<p>```\nimport pandas as pd\nresult = result\nprint(result.shape)\nprint(result)\ndf = pd.DataFrame(result)\ndf.index = df.index+1\ndf = df.replace('dog',1)\ndf = df.replace('cat',0)</p>\n\n<p>print(df)\nf = ['label']\ndf2 = pd.DataFrame(f,index=['id'])</p>\n\n<p>print(df2)\ndf3 = df2.append(df)\nprint(df3)\ndf3.to_csv('results-sm-v6.csv',index=True, header=False)\n! kaggle competitions submit -c 2019-fall-pr-project -f results-sm-v6.csv -m \"smwi-1102\"\n```\ndf\n<img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F3879592%2F391e0981c0d79c7e94d85fcbe9be73d5%2F4_df.PNG?generation=1573479724054066&amp;alt=media\" alt=\"\">\ndf2\n<img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F3879592%2F80de08660c286a555edd64adf5e51e24%2F4_df2.PNG?generation=1573479773368128&amp;alt=media\" alt=\"\">\ndf3\n<img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F3879592%2Fe25e4a9843d37f0dc0cb86397524bd6e%2F4_df3.PNG?generation=1573479809042305&amp;alt=media\" alt=\"\"></p>",
      "rawMarkdown": "## 1. 사용되는 라이브러리\n```\nfrom sklearn.model_selection import train_test_split\nfrom imutils import paths\nimport numpy as np\nimport imutils \nimport cv2 \nimport os\nimport glob\nimport matplotlib.pyplot as plt\n\nimport warnings\nwarnings.filterwarnings('ignore')\n```\n##2. 데이터\n&gt; - os의 listdir을 이용해 파일 목록(파일명)을 읽어들여 cat과 dog를 분리한다.(lable 구별)\n\n&gt; - RGB 컬러 영상과 Grayscale 흑백 영상 모두를 이용해봤는데 성능 면에서 큰 차이가 없어 연산량이 훨씬 적은 흑백 영상 이용\n\n2-1. 학습 데이터 준비\n```\ndataset_train = \"/content/input2/train/train/\"\n\nimgs_train = []\nlabel_train = []\n\nfor img_path in os.listdir(dataset_train):\n  if str.find(img_path, 'cat'):\n    label_train.append(0)\n  else:\n    label_train.append(1)\n  img = cv2.imread(dataset_train+img_path)\n  data = cv2.resize(cv2.cvtColor(img,cv2.COLOR_BGR2GRAY), (32, 32))\n  data = np.reshape(data, -1)\n  imgs_train.append(data)\n\n```\n2-2. 데이터 셋 서브 샘플링 &amp; Train-Validation 나누기\n\n&gt; - StandardScaler를 사용해 각 틍성의 분산이 1이 되도록 스케일 조정\n&gt; - train 시 75%를 다 사용하게 되면 학습시간이 너무 오래걸려 10%만 사용\n\n```\nfrom sklearn.preprocessing import StandardScaler, MinMaxScaler\n\nx_train, x_test, y_train, y_test = train_test_split(imgs_train, label_train, test_size=0.10, random_state=42)\n\nscaler = StandardScaler()\n#scaler = MinMaxScaler\nx_train = scaler.fit_transform(x_train)\nx_test = scaler.fit_transform(x_test)\n```\n2-3. 테스트 데이터 준비\n```\ndataset_test = \"/content/input2/test1/test1/\"\n\nimgs_test = []\ntest_id = []\n\nfor img_path in os.listdir(dataset_test):\n  iid, _ = img_path.split('.')\n  iid = int(iid)\n  test_id.append(iid)\n  img = cv2.imread(dataset_test+img_path)\n  data = cv2.resize(cv2.cvtColor(img,cv2.COLOR_BGR2GRAY), (32, 32))\n  data = np.reshape(data, -1)\n  imgs_test.append(data)\n```\n##3. 모델 설계\n\n&gt; - Classifier로 SVM사용\n&gt; - Grid Search를 통해 파라미터 설정\n\n```\nfrom sklearn.metrics import classification_report\nfrom sklearn.svm import SVC\nfrom sklearn.model_selection import GridSearchCV\n\nclf = SVC(kernel='rbf', class_weight='balanced', random_state=42)\n\n\nparam_grid = {'C':[0.01, 0.1, 0.5, 1, 5, 10], 'gamma':[0.01, 0.1,1, 5,10, 50]}\n\nclf = GridSearchCV(clf, param_grid, cv=3)\n\n#clf.fit(x_train, y_train)\nclf.fit(x_test, y_test)\n\n\nmodel = clf.best_estimator_\n\nprint(clf.best_params_)\n\n\ny_predict = model.predict(x_test)\n\nscore = classification_report(y_test, y_predict)\n```\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F3879592%2Fe49622b9009e00a22837595a850fbe04%2F4_grid.PNG?generation=1573475961909240&amp;alt=media)\n\n##4. 결과 예측 및 분석\n```\nresult = model.predict(imgs_test)\nresult\nprint(score)\n```\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F3879592%2F570ae299d59a93aaa86770c22a8c0966%2F4_result.PNG?generation=1573475828067918&amp;alt=media)\n\n##5. Kaggle 제출\n\n&gt; - Pandas의 DataFrame을 csv 파일로 저장시 'header=False' 옵션을 선택하면 DataFrame의 Index 명 과 Column 명이 날라가기 때문에 원 코드 그대로 케글에 전송할 시 오류가 난다\n&gt; - 따라서 'header=False' 옵션을 그대로 쓰거나 'header=True' 옵션을 쓰는 두가지 방법이 있는데 필자는 전자를 사용하였다.\n&gt; - 'header=False' 옵션을 선택하면 강제로 'id' 와 'lable'을 index와 column의 value로 넣어줘야되는 trick을 써야 된다.\n\n\n```\nimport pandas as pd\nresult = result\nprint(result.shape)\nprint(result)\ndf = pd.DataFrame(result)\ndf.index = df.index+1\ndf = df.replace('dog',1)\ndf = df.replace('cat',0)\n\nprint(df)\nf = ['label']\ndf2 = pd.DataFrame(f,index=['id'])\n\nprint(df2)\ndf3 = df2.append(df)\nprint(df3)\ndf3.to_csv('results-sm-v6.csv',index=True, header=False)\n! kaggle competitions submit -c 2019-fall-pr-project -f results-sm-v6.csv -m \"smwi-1102\"\n```\ndf\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F3879592%2F391e0981c0d79c7e94d85fcbe9be73d5%2F4_df.PNG?generation=1573479724054066&amp;alt=media)\ndf2\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F3879592%2F80de08660c286a555edd64adf5e51e24%2F4_df2.PNG?generation=1573479773368128&amp;alt=media)\ndf3\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F3879592%2Fe25e4a9843d37f0dc0cb86397524bd6e%2F4_df3.PNG?generation=1573479809042305&amp;alt=media)\n\n\n"
    }
  ],
  "comments": [],
  "raw_markdown_by_id": {
    "670356": "## 1. 사용되는 라이브러리\n```\nfrom sklearn.model_selection import train_test_split\nfrom imutils import paths\nimport numpy as np\nimport imutils \nimport cv2 \nimport os\nimport glob\nimport matplotlib.pyplot as plt\n\nimport warnings\nwarnings.filterwarnings('ignore')\n```\n##2. 데이터\n&gt; - os의 listdir을 이용해 파일 목록(파일명)을 읽어들여 cat과 dog를 분리한다.(lable 구별)\n\n&gt; - RGB 컬러 영상과 Grayscale 흑백 영상 모두를 이용해봤는데 성능 면에서 큰 차이가 없어 연산량이 훨씬 적은 흑백 영상 이용\n\n2-1. 학습 데이터 준비\n```\ndataset_train = \"/content/input2/train/train/\"\n\nimgs_train = []\nlabel_train = []\n\nfor img_path in os.listdir(dataset_train):\n  if str.find(img_path, 'cat'):\n    label_train.append(0)\n  else:\n    label_train.append(1)\n  img = cv2.imread(dataset_train+img_path)\n  data = cv2.resize(cv2.cvtColor(img,cv2.COLOR_BGR2GRAY), (32, 32))\n  data = np.reshape(data, -1)\n  imgs_train.append(data)\n\n```\n2-2. 데이터 셋 서브 샘플링 &amp; Train-Validation 나누기\n\n&gt; - StandardScaler를 사용해 각 틍성의 분산이 1이 되도록 스케일 조정\n&gt; - train 시 75%를 다 사용하게 되면 학습시간이 너무 오래걸려 10%만 사용\n\n```\nfrom sklearn.preprocessing import StandardScaler, MinMaxScaler\n\nx_train, x_test, y_train, y_test = train_test_split(imgs_train, label_train, test_size=0.10, random_state=42)\n\nscaler = StandardScaler()\n#scaler = MinMaxScaler\nx_train = scaler.fit_transform(x_train)\nx_test = scaler.fit_transform(x_test)\n```\n2-3. 테스트 데이터 준비\n```\ndataset_test = \"/content/input2/test1/test1/\"\n\nimgs_test = []\ntest_id = []\n\nfor img_path in os.listdir(dataset_test):\n  iid, _ = img_path.split('.')\n  iid = int(iid)\n  test_id.append(iid)\n  img = cv2.imread(dataset_test+img_path)\n  data = cv2.resize(cv2.cvtColor(img,cv2.COLOR_BGR2GRAY), (32, 32))\n  data = np.reshape(data, -1)\n  imgs_test.append(data)\n```\n##3. 모델 설계\n\n&gt; - Classifier로 SVM사용\n&gt; - Grid Search를 통해 파라미터 설정\n\n```\nfrom sklearn.metrics import classification_report\nfrom sklearn.svm import SVC\nfrom sklearn.model_selection import GridSearchCV\n\nclf = SVC(kernel='rbf', class_weight='balanced', random_state=42)\n\n\nparam_grid = {'C':[0.01, 0.1, 0.5, 1, 5, 10], 'gamma':[0.01, 0.1,1, 5,10, 50]}\n\nclf = GridSearchCV(clf, param_grid, cv=3)\n\n#clf.fit(x_train, y_train)\nclf.fit(x_test, y_test)\n\n\nmodel = clf.best_estimator_\n\nprint(clf.best_params_)\n\n\ny_predict = model.predict(x_test)\n\nscore = classification_report(y_test, y_predict)\n```\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F3879592%2Fe49622b9009e00a22837595a850fbe04%2F4_grid.PNG?generation=1573475961909240&amp;alt=media)\n\n##4. 결과 예측 및 분석\n```\nresult = model.predict(imgs_test)\nresult\nprint(score)\n```\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F3879592%2F570ae299d59a93aaa86770c22a8c0966%2F4_result.PNG?generation=1573475828067918&amp;alt=media)\n\n##5. Kaggle 제출\n\n&gt; - Pandas의 DataFrame을 csv 파일로 저장시 'header=False' 옵션을 선택하면 DataFrame의 Index 명 과 Column 명이 날라가기 때문에 원 코드 그대로 케글에 전송할 시 오류가 난다\n&gt; - 따라서 'header=False' 옵션을 그대로 쓰거나 'header=True' 옵션을 쓰는 두가지 방법이 있는데 필자는 전자를 사용하였다.\n&gt; - 'header=False' 옵션을 선택하면 강제로 'id' 와 'lable'을 index와 column의 value로 넣어줘야되는 trick을 써야 된다.\n\n\n```\nimport pandas as pd\nresult = result\nprint(result.shape)\nprint(result)\ndf = pd.DataFrame(result)\ndf.index = df.index+1\ndf = df.replace('dog',1)\ndf = df.replace('cat',0)\n\nprint(df)\nf = ['label']\ndf2 = pd.DataFrame(f,index=['id'])\n\nprint(df2)\ndf3 = df2.append(df)\nprint(df3)\ndf3.to_csv('results-sm-v6.csv',index=True, header=False)\n! kaggle competitions submit -c 2019-fall-pr-project -f results-sm-v6.csv -m \"smwi-1102\"\n```\ndf\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F3879592%2F391e0981c0d79c7e94d85fcbe9be73d5%2F4_df.PNG?generation=1573479724054066&amp;alt=media)\ndf2\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F3879592%2F80de08660c286a555edd64adf5e51e24%2F4_df2.PNG?generation=1573479773368128&amp;alt=media)\ndf3\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F3879592%2Fe25e4a9843d37f0dc0cb86397524bd6e%2F4_df3.PNG?generation=1573479809042305&amp;alt=media)\n\n\n"
  }
}