{
  "id": 116781,
  "title": "2019-PR-Midterm-ImageClassification_Nam-hyunho",
  "url": "/competitions/2019-fall-pr-project/discussion/116781",
  "author_name": "Namhyunho",
  "post_date": "2019-11-11T12:22:07.270000",
  "votes": 0,
  "comment_count": 0,
  "views": 0,
  "content": "<h3>헤더파일 선언</h3>\n\n<p><code>\nfrom sklearn.neighbors import KNeighborsClassifier\nfrom sklearn.model_selection import train_test_split\nimport numpy as np\nimport cv2\nimport os\nfrom glob import glob\nfrom sklearn import svm, datasets\nfrom sklearn.metrics import classification_report\nfrom sklearn.metrics import confusion_matrix\nfrom PIL import Image\n</code></p>\n\n<h3>데이터 로더</h3>\n\n<p>glob함수를 사용해서 폴더내 모든 폴더를 불러온다.\n<code>\ndataset_train = \"/kaggle/input/2019-fall-pr-project/train/train/\"\ntrain_data_list = glob(dataset_train+'*.*.jpg') \n</code></p>\n\n<h3>label을 정한다</h3>\n\n<p>반벅문을 통하여 불러온 데이터리스트의 C의 위치에 따라 라벨을 구분해 지정한다.\n<code>\ntrain = list()\nlabel = list()\nimgsize = (32,32)\nfor i in range(len(train_data_list)):\n    if train_data_list[i][47] == 'c':\n        label.append(0)\n    else :\n        label.append(1)\n    image = Image.open(train_data_list[i])\n    image = image.resize(imgsize, Image.ANTIALIAS)\n    image = np.array(image)/255\n    image = image.reshape(-1)\n    train.append(image)\n</code></p>\n\n<h3>StandardScaler()를통하여 평균이 0과 표준편차가 1이 되도록 변환.</h3>\n\n<p><code>\nfrom sklearn.preprocessing import StandardScaler\nscaler = StandardScaler()\n</code></p>\n\n<h3>fit 을 통하여 학습용 데이터롤 바꿔준다.</h3>\n\n<p><code>\ntrain = np.array(train)\nscaler.fit(train)\ntrain = scaler.transform(train)\nlabel = np.array(label)\n</code></p>\n\n<h3>모델을 설계하고 grid 파라미터를 통해 입력한 파라미터중에 최적을 파라미터를 설정한다.</h3>\n\n<p><code>\nX_train, X_test, y_train, y_test = train_test_split(train, label, test_size=0.75, random_state=42)\nfrom sklearn.model_selection import GridSearchCV\ngrid_P= {'C': [1, 10, 100, 1e3], 'gamma': [ 0.1,0.05,0.005] ,'class_weight' : ['balanced']}\nsvc = svm.SVC(kernel = 'rbf',gamma=\"scale\")\nclf = GridSearchCV(svc, grid_P, cv=2)\nclf.fit(X_train, y_train)\n</code></p>\n\n<h3>label에 대한 예측값</h3>\n\n<p><code>\ny_predict = clf.predict(X_test)\n</code></p>\n\n<h3>test데이터 로드/label정의 /test데이터 형로 변환</h3>\n\n<p>```\ntest = list()</p>\n\n<p>dataset_test = \"/kaggle/input/2019-fall-pr-project/test1/test1/\"\ntest_data_list = glob(dataset_test+'*.jpg')</p>\n\n<p>for i in range(len(test_data_list)):\n  image = Image.open(test_data_list[i])\n  image = image.resize(imgsize, Image.ANTIALIAS)\n  image = np.array(image)/255\n  image = image.reshape(-1)\n  test.append(image)</p>\n\n<p>test = np.array(test)\nscaler.fit(test)\ntest = scaler.transform(test)\n```</p>\n\n<h3>test</h3>\n\n<p><code>\nresult = clf.predict(test)\n</code></p>\n\n<h3>shape를 바꿔  pandas를 통해 csv파일로 저장</h3>\n\n<p>```\ntest = result.reshape(-1,1)\nimport pandas as pd</p>\n\n<p>print(test.shape)\ndf = pd.DataFrame(test, columns=[\"label\"])\ndf.index = np.arange(1,len(df)+1)\ndf.index.name = 'id'</p>\n\n<p>df.to_csv('results-hhnam-v.csv',index=True, header=True)\n```</p>",
  "messages": [
    {
      "id": 670398,
      "postDate": "2019-11-11T12:22:07.270Z",
      "content": "<h3>헤더파일 선언</h3>\n\n<p><code>\nfrom sklearn.neighbors import KNeighborsClassifier\nfrom sklearn.model_selection import train_test_split\nimport numpy as np\nimport cv2\nimport os\nfrom glob import glob\nfrom sklearn import svm, datasets\nfrom sklearn.metrics import classification_report\nfrom sklearn.metrics import confusion_matrix\nfrom PIL import Image\n</code></p>\n\n<h3>데이터 로더</h3>\n\n<p>glob함수를 사용해서 폴더내 모든 폴더를 불러온다.\n<code>\ndataset_train = \"/kaggle/input/2019-fall-pr-project/train/train/\"\ntrain_data_list = glob(dataset_train+'*.*.jpg') \n</code></p>\n\n<h3>label을 정한다</h3>\n\n<p>반벅문을 통하여 불러온 데이터리스트의 C의 위치에 따라 라벨을 구분해 지정한다.\n<code>\ntrain = list()\nlabel = list()\nimgsize = (32,32)\nfor i in range(len(train_data_list)):\n    if train_data_list[i][47] == 'c':\n        label.append(0)\n    else :\n        label.append(1)\n    image = Image.open(train_data_list[i])\n    image = image.resize(imgsize, Image.ANTIALIAS)\n    image = np.array(image)/255\n    image = image.reshape(-1)\n    train.append(image)\n</code></p>\n\n<h3>StandardScaler()를통하여 평균이 0과 표준편차가 1이 되도록 변환.</h3>\n\n<p><code>\nfrom sklearn.preprocessing import StandardScaler\nscaler = StandardScaler()\n</code></p>\n\n<h3>fit 을 통하여 학습용 데이터롤 바꿔준다.</h3>\n\n<p><code>\ntrain = np.array(train)\nscaler.fit(train)\ntrain = scaler.transform(train)\nlabel = np.array(label)\n</code></p>\n\n<h3>모델을 설계하고 grid 파라미터를 통해 입력한 파라미터중에 최적을 파라미터를 설정한다.</h3>\n\n<p><code>\nX_train, X_test, y_train, y_test = train_test_split(train, label, test_size=0.75, random_state=42)\nfrom sklearn.model_selection import GridSearchCV\ngrid_P= {'C': [1, 10, 100, 1e3], 'gamma': [ 0.1,0.05,0.005] ,'class_weight' : ['balanced']}\nsvc = svm.SVC(kernel = 'rbf',gamma=\"scale\")\nclf = GridSearchCV(svc, grid_P, cv=2)\nclf.fit(X_train, y_train)\n</code></p>\n\n<h3>label에 대한 예측값</h3>\n\n<p><code>\ny_predict = clf.predict(X_test)\n</code></p>\n\n<h3>test데이터 로드/label정의 /test데이터 형로 변환</h3>\n\n<p>```\ntest = list()</p>\n\n<p>dataset_test = \"/kaggle/input/2019-fall-pr-project/test1/test1/\"\ntest_data_list = glob(dataset_test+'*.jpg')</p>\n\n<p>for i in range(len(test_data_list)):\n  image = Image.open(test_data_list[i])\n  image = image.resize(imgsize, Image.ANTIALIAS)\n  image = np.array(image)/255\n  image = image.reshape(-1)\n  test.append(image)</p>\n\n<p>test = np.array(test)\nscaler.fit(test)\ntest = scaler.transform(test)\n```</p>\n\n<h3>test</h3>\n\n<p><code>\nresult = clf.predict(test)\n</code></p>\n\n<h3>shape를 바꿔  pandas를 통해 csv파일로 저장</h3>\n\n<p>```\ntest = result.reshape(-1,1)\nimport pandas as pd</p>\n\n<p>print(test.shape)\ndf = pd.DataFrame(test, columns=[\"label\"])\ndf.index = np.arange(1,len(df)+1)\ndf.index.name = 'id'</p>\n\n<p>df.to_csv('results-hhnam-v.csv',index=True, header=True)\n```</p>",
      "rawMarkdown": "### 헤더파일 선언\n```\nfrom sklearn.neighbors import KNeighborsClassifier\nfrom sklearn.model_selection import train_test_split\nimport numpy as np\nimport cv2\nimport os\nfrom glob import glob\nfrom sklearn import svm, datasets\nfrom sklearn.metrics import classification_report\nfrom sklearn.metrics import confusion_matrix\nfrom PIL import Image\n```\n### 데이터 로더\nglob함수를 사용해서 폴더내 모든 폴더를 불러온다.\n```\ndataset_train = \"/kaggle/input/2019-fall-pr-project/train/train/\"\ntrain_data_list = glob(dataset_train+'*.*.jpg') \n```\n### label을 정한다\n반벅문을 통하여 불러온 데이터리스트의 C의 위치에 따라 라벨을 구분해 지정한다.\n```\ntrain = list()\nlabel = list()\nimgsize = (32,32)\nfor i in range(len(train_data_list)):\n    if train_data_list[i][47] == 'c':\n        label.append(0)\n    else :\n        label.append(1)\n    image = Image.open(train_data_list[i])\n    image = image.resize(imgsize, Image.ANTIALIAS)\n    image = np.array(image)/255\n    image = image.reshape(-1)\n    train.append(image)\n```\n###  StandardScaler()를통하여 평균이 0과 표준편차가 1이 되도록 변환.\n\n```\nfrom sklearn.preprocessing import StandardScaler\nscaler = StandardScaler()\n```\n### fit 을 통하여 학습용 데이터롤 바꿔준다.\n```\ntrain = np.array(train)\nscaler.fit(train)\ntrain = scaler.transform(train)\nlabel = np.array(label)\n```\n### 모델을 설계하고 grid 파라미터를 통해 입력한 파라미터중에 최적을 파라미터를 설정한다. \n```\nX_train, X_test, y_train, y_test = train_test_split(train, label, test_size=0.75, random_state=42)\nfrom sklearn.model_selection import GridSearchCV\ngrid_P= {'C': [1, 10, 100, 1e3], 'gamma': [ 0.1,0.05,0.005] ,'class_weight' : ['balanced']}\nsvc = svm.SVC(kernel = 'rbf',gamma=\"scale\")\nclf = GridSearchCV(svc, grid_P, cv=2)\nclf.fit(X_train, y_train)\n```\n### label에 대한 예측값\n```\ny_predict = clf.predict(X_test)\n```\n### test데이터 로드/label정의 /test데이터 형로 변환\n```\ntest = list()\n\ndataset_test = \"/kaggle/input/2019-fall-pr-project/test1/test1/\"\ntest_data_list = glob(dataset_test+'*.jpg')\n\nfor i in range(len(test_data_list)):\n  image = Image.open(test_data_list[i])\n  image = image.resize(imgsize, Image.ANTIALIAS)\n  image = np.array(image)/255\n  image = image.reshape(-1)\n  test.append(image)\n\ntest = np.array(test)\nscaler.fit(test)\ntest = scaler.transform(test)\n```\n### test\n```\nresult = clf.predict(test)\n```\n### shape를 바꿔  pandas를 통해 csv파일로 저장\n```\ntest = result.reshape(-1,1)\nimport pandas as pd\n\nprint(test.shape)\ndf = pd.DataFrame(test, columns=[\"label\"])\ndf.index = np.arange(1,len(df)+1)\ndf.index.name = 'id'\n\ndf.to_csv('results-hhnam-v.csv',index=True, header=True)\n```"
    }
  ],
  "comments": [],
  "raw_markdown_by_id": {
    "670398": "### 헤더파일 선언\n```\nfrom sklearn.neighbors import KNeighborsClassifier\nfrom sklearn.model_selection import train_test_split\nimport numpy as np\nimport cv2\nimport os\nfrom glob import glob\nfrom sklearn import svm, datasets\nfrom sklearn.metrics import classification_report\nfrom sklearn.metrics import confusion_matrix\nfrom PIL import Image\n```\n### 데이터 로더\nglob함수를 사용해서 폴더내 모든 폴더를 불러온다.\n```\ndataset_train = \"/kaggle/input/2019-fall-pr-project/train/train/\"\ntrain_data_list = glob(dataset_train+'*.*.jpg') \n```\n### label을 정한다\n반벅문을 통하여 불러온 데이터리스트의 C의 위치에 따라 라벨을 구분해 지정한다.\n```\ntrain = list()\nlabel = list()\nimgsize = (32,32)\nfor i in range(len(train_data_list)):\n    if train_data_list[i][47] == 'c':\n        label.append(0)\n    else :\n        label.append(1)\n    image = Image.open(train_data_list[i])\n    image = image.resize(imgsize, Image.ANTIALIAS)\n    image = np.array(image)/255\n    image = image.reshape(-1)\n    train.append(image)\n```\n###  StandardScaler()를통하여 평균이 0과 표준편차가 1이 되도록 변환.\n\n```\nfrom sklearn.preprocessing import StandardScaler\nscaler = StandardScaler()\n```\n### fit 을 통하여 학습용 데이터롤 바꿔준다.\n```\ntrain = np.array(train)\nscaler.fit(train)\ntrain = scaler.transform(train)\nlabel = np.array(label)\n```\n### 모델을 설계하고 grid 파라미터를 통해 입력한 파라미터중에 최적을 파라미터를 설정한다. \n```\nX_train, X_test, y_train, y_test = train_test_split(train, label, test_size=0.75, random_state=42)\nfrom sklearn.model_selection import GridSearchCV\ngrid_P= {'C': [1, 10, 100, 1e3], 'gamma': [ 0.1,0.05,0.005] ,'class_weight' : ['balanced']}\nsvc = svm.SVC(kernel = 'rbf',gamma=\"scale\")\nclf = GridSearchCV(svc, grid_P, cv=2)\nclf.fit(X_train, y_train)\n```\n### label에 대한 예측값\n```\ny_predict = clf.predict(X_test)\n```\n### test데이터 로드/label정의 /test데이터 형로 변환\n```\ntest = list()\n\ndataset_test = \"/kaggle/input/2019-fall-pr-project/test1/test1/\"\ntest_data_list = glob(dataset_test+'*.jpg')\n\nfor i in range(len(test_data_list)):\n  image = Image.open(test_data_list[i])\n  image = image.resize(imgsize, Image.ANTIALIAS)\n  image = np.array(image)/255\n  image = image.reshape(-1)\n  test.append(image)\n\ntest = np.array(test)\nscaler.fit(test)\ntest = scaler.transform(test)\n```\n### test\n```\nresult = clf.predict(test)\n```\n### shape를 바꿔  pandas를 통해 csv파일로 저장\n```\ntest = result.reshape(-1,1)\nimport pandas as pd\n\nprint(test.shape)\ndf = pd.DataFrame(test, columns=[\"label\"])\ndf.index = np.arange(1,len(df)+1)\ndf.index.name = 'id'\n\ndf.to_csv('results-hhnam-v.csv',index=True, header=True)\n```"
  }
}