{
  "id": 116800,
  "title": "[HW]YonghoChoi",
  "url": "/competitions/2019-fall-pr-project/discussion/116800",
  "author_name": "최용호",
  "post_date": "2019-11-11T14:11:37.126000",
  "votes": 0,
  "comment_count": 0,
  "views": 0,
  "content": "<h1>import 라이브러리</h1>\n\n<p>```\nimport matplotlib as mpl\nimport matplotlib.pyplot as plt\nfrom IPython.display import display\n%matplotlib inline</p>\n\n<p>import pandas as pd\nimport numpy as np\nimport cv2\nimport os\nimport matplotlib.pyplot as plt\nfrom PIL import Image\nfrom glob import glob\nfrom skimage.feature import hog\nfrom skimage.color import rgb2grey</p>\n\n<p>from sklearn import svm, datasets\nfrom sklearn.model_selection import GridSearchCV\nfrom sklearn.metrics import classification_report\nfrom sklearn.metrics import confusion_matrix\nfrom sklearn.model_selection import train_test_split</p>\n\n<p>from sklearn.metrics import roc_curve, auc</p>\n\n<p>from sklearn.preprocessing import RobustScaler\n```  </p>\n\n<h1>데이터 로더</h1>\n\n<ul>\n<li>반복문을 통한 c의 위치에 따라 라벨을 지정한다.</li>\n</ul>\n\n<p>```\ntrain = list()\nlabel = list()</p>\n\n<p>dataset_train = \"/kaggle/input/2019-fall-pr-project/train/train/\"\ntrain_data_list = glob(dataset_train+'<em>.</em>.jpg')</p>\n\n<p>for 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((32,32), Image.ANTIALIAS)\n    image = np.array(image)/255\n    image = image.reshape(-1)\n    train.append(image)\n```  </p>\n\n<h1>로버스트를 이용한 스케일링</h1>\n\n<p>```\nscaler = RobustScaler()</p>\n\n<p>train = np.array(train)\nscaler.fit(train)\ntrain = scaler.transform(train)\nlabel = np.array(label)\n```  </p>\n\n<h1>validation 및 grid, svc</h1>\n\n<p>```\nX_train, X_test, y_train, y_test = train_test_split(train, label, test_size=0.25, random_state=42)</p>\n\n<p>grid_para= {'C': [1, 5, 10, 50], \n            'gamma': [ 0.01,0.05,0.001] ,'class_weight' : ['balanced']}\nsvc = svm.SVC(kernel = 'rbf',gamma=\"scale\")\nclf = GridSearchCV(svc, grid_para, cv=2)</p>\n\n<p>```</p>\n\n<h1>accuracy 측정</h1>\n\n<p><code>\nclf.fit(X_train, y_train)\ny_predict = clf.predict(X_test)\nprint(confusion_matrix(y_test, y_predict))\nprint(classification_report(y_test, y_predict))\n</code>  </p>\n\n<h1>test data</h1>\n\n<p>``` <br>\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((32,32), 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<h1>데이터 형태 맞추기</h1>\n\n<p><code>\nresult = clf.predict(test)\ntest = result.reshape(-1,1)\n</code>  </p>",
  "messages": [
    {
      "id": 670494,
      "postDate": "2019-11-11T14:11:37.127Z",
      "content": "<h1>import 라이브러리</h1>\n\n<p>```\nimport matplotlib as mpl\nimport matplotlib.pyplot as plt\nfrom IPython.display import display\n%matplotlib inline</p>\n\n<p>import pandas as pd\nimport numpy as np\nimport cv2\nimport os\nimport matplotlib.pyplot as plt\nfrom PIL import Image\nfrom glob import glob\nfrom skimage.feature import hog\nfrom skimage.color import rgb2grey</p>\n\n<p>from sklearn import svm, datasets\nfrom sklearn.model_selection import GridSearchCV\nfrom sklearn.metrics import classification_report\nfrom sklearn.metrics import confusion_matrix\nfrom sklearn.model_selection import train_test_split</p>\n\n<p>from sklearn.metrics import roc_curve, auc</p>\n\n<p>from sklearn.preprocessing import RobustScaler\n```  </p>\n\n<h1>데이터 로더</h1>\n\n<ul>\n<li>반복문을 통한 c의 위치에 따라 라벨을 지정한다.</li>\n</ul>\n\n<p>```\ntrain = list()\nlabel = list()</p>\n\n<p>dataset_train = \"/kaggle/input/2019-fall-pr-project/train/train/\"\ntrain_data_list = glob(dataset_train+'<em>.</em>.jpg')</p>\n\n<p>for 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((32,32), Image.ANTIALIAS)\n    image = np.array(image)/255\n    image = image.reshape(-1)\n    train.append(image)\n```  </p>\n\n<h1>로버스트를 이용한 스케일링</h1>\n\n<p>```\nscaler = RobustScaler()</p>\n\n<p>train = np.array(train)\nscaler.fit(train)\ntrain = scaler.transform(train)\nlabel = np.array(label)\n```  </p>\n\n<h1>validation 및 grid, svc</h1>\n\n<p>```\nX_train, X_test, y_train, y_test = train_test_split(train, label, test_size=0.25, random_state=42)</p>\n\n<p>grid_para= {'C': [1, 5, 10, 50], \n            'gamma': [ 0.01,0.05,0.001] ,'class_weight' : ['balanced']}\nsvc = svm.SVC(kernel = 'rbf',gamma=\"scale\")\nclf = GridSearchCV(svc, grid_para, cv=2)</p>\n\n<p>```</p>\n\n<h1>accuracy 측정</h1>\n\n<p><code>\nclf.fit(X_train, y_train)\ny_predict = clf.predict(X_test)\nprint(confusion_matrix(y_test, y_predict))\nprint(classification_report(y_test, y_predict))\n</code>  </p>\n\n<h1>test data</h1>\n\n<p>``` <br>\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((32,32), 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<h1>데이터 형태 맞추기</h1>\n\n<p><code>\nresult = clf.predict(test)\ntest = result.reshape(-1,1)\n</code>  </p>",
      "rawMarkdown": "# import 라이브러리  \n```\nimport matplotlib as mpl\nimport matplotlib.pyplot as plt\nfrom IPython.display import display\n%matplotlib inline\n\nimport pandas as pd\nimport numpy as np\nimport cv2\nimport os\nimport matplotlib.pyplot as plt\nfrom PIL import Image\nfrom glob import glob\nfrom skimage.feature import hog\nfrom skimage.color import rgb2grey\n\nfrom sklearn import svm, datasets\nfrom sklearn.model_selection import GridSearchCV\nfrom sklearn.metrics import classification_report\nfrom sklearn.metrics import confusion_matrix\nfrom sklearn.model_selection import train_test_split\n\nfrom sklearn.metrics import roc_curve, auc\n\nfrom sklearn.preprocessing import RobustScaler\n```  \n#데이터 로더\n- 반복문을 통한 c의 위치에 따라 라벨을 지정한다.\n\n```\ntrain = list()\nlabel = list()\n\ndataset_train = \"/kaggle/input/2019-fall-pr-project/train/train/\"\ntrain_data_list = glob(dataset_train+'*.*.jpg')\n\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((32,32), Image.ANTIALIAS)\n    image = np.array(image)/255\n    image = image.reshape(-1)\n    train.append(image)\n```  \n\n#로버스트를 이용한 스케일링\n\n```\nscaler = RobustScaler()\n\ntrain = np.array(train)\nscaler.fit(train)\ntrain = scaler.transform(train)\nlabel = np.array(label)\n```  \n\n# validation 및 grid, svc  \n```\nX_train, X_test, y_train, y_test = train_test_split(train, label, test_size=0.25, random_state=42)\n\ngrid_para= {'C': [1, 5, 10, 50], \n            'gamma': [ 0.01,0.05,0.001] ,'class_weight' : ['balanced']}\nsvc = svm.SVC(kernel = 'rbf',gamma=\"scale\")\nclf = GridSearchCV(svc, grid_para, cv=2)\n\n```\n\n# accuracy 측정\n```  \nclf.fit(X_train, y_train)\ny_predict = clf.predict(X_test)\nprint(confusion_matrix(y_test, y_predict))\nprint(classification_report(y_test, y_predict))\n```  \n\n# test data\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((32,32), 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# 데이터 형태 맞추기\n\n```\nresult = clf.predict(test)\ntest = result.reshape(-1,1)\n```  "
    }
  ],
  "comments": [],
  "raw_markdown_by_id": {
    "670494": "# import 라이브러리  \n```\nimport matplotlib as mpl\nimport matplotlib.pyplot as plt\nfrom IPython.display import display\n%matplotlib inline\n\nimport pandas as pd\nimport numpy as np\nimport cv2\nimport os\nimport matplotlib.pyplot as plt\nfrom PIL import Image\nfrom glob import glob\nfrom skimage.feature import hog\nfrom skimage.color import rgb2grey\n\nfrom sklearn import svm, datasets\nfrom sklearn.model_selection import GridSearchCV\nfrom sklearn.metrics import classification_report\nfrom sklearn.metrics import confusion_matrix\nfrom sklearn.model_selection import train_test_split\n\nfrom sklearn.metrics import roc_curve, auc\n\nfrom sklearn.preprocessing import RobustScaler\n```  \n#데이터 로더\n- 반복문을 통한 c의 위치에 따라 라벨을 지정한다.\n\n```\ntrain = list()\nlabel = list()\n\ndataset_train = \"/kaggle/input/2019-fall-pr-project/train/train/\"\ntrain_data_list = glob(dataset_train+'*.*.jpg')\n\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((32,32), Image.ANTIALIAS)\n    image = np.array(image)/255\n    image = image.reshape(-1)\n    train.append(image)\n```  \n\n#로버스트를 이용한 스케일링\n\n```\nscaler = RobustScaler()\n\ntrain = np.array(train)\nscaler.fit(train)\ntrain = scaler.transform(train)\nlabel = np.array(label)\n```  \n\n# validation 및 grid, svc  \n```\nX_train, X_test, y_train, y_test = train_test_split(train, label, test_size=0.25, random_state=42)\n\ngrid_para= {'C': [1, 5, 10, 50], \n            'gamma': [ 0.01,0.05,0.001] ,'class_weight' : ['balanced']}\nsvc = svm.SVC(kernel = 'rbf',gamma=\"scale\")\nclf = GridSearchCV(svc, grid_para, cv=2)\n\n```\n\n# accuracy 측정\n```  \nclf.fit(X_train, y_train)\ny_predict = clf.predict(X_test)\nprint(confusion_matrix(y_test, y_predict))\nprint(classification_report(y_test, y_predict))\n```  \n\n# test data\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((32,32), 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# 데이터 형태 맞추기\n\n```\nresult = clf.predict(test)\ntest = result.reshape(-1,1)\n```  "
  }
}