반응형
[python] ‘얼리또라이’의 데이터 공부 도전기

지난주 2천여명이 참석했던 파이썬 컨퍼런스 ‘파이콘’이 성황리에 끝났다.
 60여개의 다양한 발표가 진행된 가운데 눈에 띄는 발표가 하나 있었다. 
바로 ‘파이썬 입문자의 데이터 사이언스(Kaggle)’라는 발표다. 
발표 시작 10분 전부터 이미 좌석은 꽉찼다. 무대 앞과 뒤, 통로까지 참석자로 빽빽했다. 
발표자는 박미정 아이오 최고기술책임자(CTO). 
스타트업 혹은 개발자 행사에서는 흔하게 볼 수 없는 여성 CTO였다. 


발표가 끝나고 “데이터에 대한 관심도 많고, 입문자용 콘텐츠라 많은 분이 오신것 같다”라고 소감을 전하던 박미정 CTO로부터 스타트업에 유용한 몇가지 팁을 좀더 들어보았다. 

데이터 공부, 캐글로 시작해보세요 
캐글은 데이터 과학 및 머신러닝을 학습하는 플랫폼이자 온라인 경연 대회를 운영하는 곳이다. 
기업이나 특정 사용자가 데이터를 첨부해 문제를 내면 누구나 이 문제에 답을 제출 할 수 있다. 
참가자는 문제를 풀면서 데이터 분석을 경험하고 공부한다. 

 예를 들어, 미국 국토안보부는 캐글에 위험 감지 알고리즘을 향상할 수 있는 방안을 묻는 문제를 제출하면서 데이터 약 10기가바이트(DB)도 함께 제공했다. 현재까지 199팀이 여기에 참여했으며, 향후 가장 좋은 답안을 제출한 참가자가 상금을 받는다. 캐글은 지난 3월 구글에 인수됐다. “제 회사 차기 제품에선 고객한테 더 많은 서비스, 적합한 서비스를 추천해야 해요. 그럴려면 고객 환경 정보를 센서나 제품 등에서 수집해야 하거든요. 그런데 저는 통계나 데이터쪽으로 전공하지 않았어요. 당장 개발은 해야겠는데 뭐부터 해야 할지 막막하더군요. 그래서 일단 오프라인 학원 수업을 들었고, 그때 캐글을 처음 접했어요. 

처음에는 문제를 푸는 건지 알고 재밌었는데 시간이 지나니 이거를 우리 서비스에 어떻게 녹일지 고민할 수 있더라구요.” 박미정 개발자는 캐글에 공개된 자료 중에 타이타닉 생존자 예측 문제와 자전거 공유 시스템 예측 문제를 풀면서 데이터과학을 익혔다고 한다. 처음 데이터를 시작하는 사람이라면 이 두 문제를 살펴보면 좋다. 만약 어떤 알고리즘을 적용할지 고민된다면, 사이키트런 치트시트을 참고하자. 자세한 과정은 이번 발표자료에도 공개됐다. 
...


반응형
반응형
[PYCON KOREA 2017] Python 입문자의 Data Science(Kaggle) 도전

[PYCON KOREA 2017] Python 입문자의 Data Science(Kaggle) 도전

  1. 1. Python 입문자의 Data Science(Kaggle) 도전 박미정
  2. 2. 나는 누구에요?
  3. 3. 나는 누구에요? 아이오라는 스타트업에서 스위처를 만들고 개발팀을 리드하고 있어요
  4. 4. 누구를 위한 발표인가? 저처럼, Python과 데이터 분석을 이제 막 시도하시려는 분들을 위한 발표에요
  5. 5. 발표의 목적은? 발표를 듣고 집으로 돌아가셔서, 데이터 분석이 뭔지 아직도 감은 잘 안오지만 튜토리얼 문제를 시도하면서 공부를 시작하도록 돕는 것
  6. 6. 발표를 간단히 요약하면 제가 얼마나 Python과 데이터 분석 초보인지 밝힘으로써 용기를 드리고, 데이터 분석 공부를 시작하게 된 계기와, 데이터 분석 공부를 위한 기본적인 환경, 실제로 Python을 이용하여 Kaggle 문제에 접근한 사례를 공유하게 되요
  7. 7. 나는 왜 Python과 데이터 분석을? Last 30 Days by WakaTime
  8. 8. 나는 왜 Python과 데이터 분석을? 지난 한 달 동안 주로 사용한 언어에 Python은 보이지 않아요
  9. 9. 나는 왜 Python과 데이터 분석을? 집에는 파이썬, 머신러닝, 딥러닝 책들이 먼지와 함께 쌓여있어요
  10. 10. 나는 왜 Python과 데이터 분석을? 제가 파이콘에서 스피커로 자격이 있는지 모르겠어요
  11. 11. 나는 왜 Python과 데이터 분석을? 하지만, Back to the Basic 용기를 내어 보았어요
  12. 12. 나는 왜 Python과 데이터 분석을? 역시 저는 몰랐지만, 데이터 분석에는 여러 유형이 있어요
  13. 13. 나는 왜 Python과 데이터 분석을? 주어진 데이터를 요약/집계해서 결과를 내는 Descriptive analysis 를 이미 진행하고 있었어요
  14. 14. 나는 왜 Python과 데이터 분석을? 하지만 저에게 데이터 분석이라고 하면 가장 먼저 떠오르는 유형은 Predictive analysis 였어요
  15. 15. 나는 왜 Python과 데이터 분석을? 그 외에도 Exploratory, Inferential, Casual, Mechanistic analysis 등 많은 분석 유형이 존재해요
  16. 16. 나는 왜 Python과 데이터 분석을? 사실 모든 유형에 대해 자세히 모르겠어요
  17. 17. 나는 왜 Python과 데이터 분석을? 그저 공부를 시작하기 위해 필요한 목적과 동기부여를 위해 Predictive analysis 를 선택했어요
  18. 18. 나는 왜 Python과 데이터 분석을? 데이터를 통한 정확한 예측이 아이오에는 필요하거든요
  19. 19. Predictive analysis? 머신러닝, 의사 결정 트리를 이용해서 발생하지 않은 일을 예측하는 거에요
  20. 20. 머신러닝? 기존 데이터를 학습시킨 후, 새로운 데이터를 예측하는 목적이에요
  21. 21. 머신러닝? 머신러닝에서 지도 학습과 비지도 학습으로 구분지을 수 있어요
  22. 22. 머신러닝? 지도 학습에는 분류와 회귀 방법이 존재하고,
  23. 23. 머신러닝? 비지도 학습에는 군집 방법이 존재해요
  24. 24. 머신러닝? 저는 지도 학습인 분류와 회귀에 대한 공부 경험을 공유하려 해요
  25. 25. 어떻게 시작하게 되었어요? 혹시, 이 분을 아시나요?
  26. 26. 어떻게 시작하게 되었어요? 꿀 수업 듣으러 가기
  27. 27. 기본적인 환경은? Kaggle
  28. 28. 기본적인 환경은? Kaggle 데이터 과학과 머신러닝을 실습하고 경쟁할 수 있는 Kaggle을 이용했어요 Kaggle 방문하기
  29. 29. 기본적인 환경은? Kaggle training set과 test set이 주어져요
  30. 30. 기본적인 환경은? Kaggle training set을 통해 최적화된 모델을 통해서 test set의 값을 분류 및 예측하고 제출할 수 있어요
  31. 31. 기본적인 환경은? Kaggle 주의할 점! 하루에 제출할 수 있는 기회는 제한되어 있어요
  32. 32. 기본적인 환경은? Python 데이터 분석을 돕는 Python 도구들을 사용했어요
  33. 33. 기본적인 환경은? Python 일, 수학적 기능을 제공하는 NumPy
  34. 34. 기본적인 환경은? Python 이, 데이터 처리 및 가공을 위한 Pandas
  35. 35. 기본적인 환경은? Python 삼, 머신러닝 알고리즘 적용을 위한 Scikit-Learn
  36. 36. 데이터 분석 프로세스는요? 그렇다면, 데이터 분석의 프로세스는 어떻게 될까요?
  37. 37. 데이터 분석 프로세스는요? 일, 문제를 정의해요 내가 원하는 결과가 무엇이고, 어떤 종류의 문제에 속하는지 파악해요
  38. 38. 데이터 분석 프로세스는요? 이, 데이터를 확보해서 준비하고 전처리를 해요
  39. 39. 데이터 분석 프로세스는요?
  40. 40. 데이터 분석 프로세스는요?
  41. 41. 데이터 분석 프로세스는요? 삼, 데이터를 탐색하고 피처를 선택해요
  42. 42. 데이터 분석 프로세스는요? 사, 모델을 최적화하고 검증해요
  43. 43. 데이터 분석을 돕는 Python 도구들? Pandas는 데이터 처리와 가공을 돕는 도구에요
  44. 44. 이렇게 데이터 파일도 쉽게 불러올 수 있구요 데이터 분석을 돕는 Python 도구들?
  45. 45. train 데이터와 test 데이터를 쉽게 연결할 수 도 있어요 데이터 분석을 돕는 Python 도구들?
  46. 46. 데이터 분석을 돕는 Python 도구들? NumPy는 수학적 연산을 돕는 도구에요
  47. 47. 배열, 로그, 평균 등 다양한 연산을 도와줘요 데이터 분석을 돕는 Python 도구들?
  48. 48. 데이터 분석을 돕는 Python 도구들? Scikit-Learn은 머신러닝 알고리즘을 제공하는 도구에요
  49. 49. 데이터 분석을 돕는 Python 도구들? 이렇게 분류를 위한 의사 결정 트리를 사용할 수 있어요
  50. 50. 어떤 방법을 사용했어요? 앞에서 머신러닝의 분류와 회귀에 대한 공부 경험을 공유한다고 했어요
  51. 51. 어떤 방법을 사용했어요? 분류에 대한 Kaggle 문제를 접했어요
  52. 52. 어떤 방법을 사용했어요? Kaggle의 튜토리얼 문제 Titanic: Machine Learning from Disaster
  53. 53. 어떤 방법을 사용했어요? 문제 풀으러 가기!
  54. 54. 어떤 방법을 사용했어요? Python 도구를 사용해서 이렇게 코드로 분류를 시도할 수 있어요
  55. 55. Yes or No 유형의 분류를 시도할 때, DecisionTreeClassifier 어떤 방법을 사용했어요?
  56. 56. 어떤 방법을 사용했어요? 회귀에 대한 Kaggle 문제도 접했어요
  57. 57. 어떤 방법을 사용했어요? Kaggle의 문제 Bike Sharing Demand
  58. 58. 어떤 방법을 사용했어요? 문제 풀으러 가기!
  59. 59. 어떤 방법을 사용했어요? 역시, Python 도구를 사용해서 이렇게 코드로 회귀를 시도할 수 있어요
  60. 60. 특정 숫자 값을 예측할 때, DecisionTreeRegressor 어떤 방법을 사용했어요?
  61. 61. Titanic 예시 Titanic 튜토리얼 문제를 다시 확인할게요
  62. 62. Titanic 예시 문제 정의 승객들의 정보를 이용하여 살아남을지 아닐지 예측하라
  63. 63. Titanic 예시 데이터 속성 분석 train set을 다운받고, 데이터 속성을 분석해요
  64. 64. Titanic 예시 데이터 속성 분석
  65. 65. 데이터 전처리 작업을 위해, train set과 test set을 합칠게요! Titanic 예시 데이터 전처리
  66. 66. Scikit-Learn 사용을 위해 Gender 문자열 값을 인코딩 할게요! Titanic 예시 데이터 전처리
  67. 67. Scikit-Learn 빈 값 처리 오류 제거를 위해, 평균 값으로 채울게요! Titanic 예시 데이터 전처리
  68. 68. 분류(예측)의 기준이 되는 피처를 선택해요 Titanic 예시 데이터 탐색 및 피처 선택
  69. 69. 피처 선택을 기준으로 train set을 이용하여, test set을 분류(예측)해요! Titanic 예시 모델 최적화 및 검증
  70. 70. 이제 Kaggle에서 Submit을 하면 예측 점수를 확인할 수 있어요! Titanic 예시 제출
  71. 71. 전체 코드는 아래 주소에서 확인하실 수 있어요! GitHub Repository Reference Code Titanic 예시
  72. 72. 그래서 어디에 사용할거에요? 일. 지역, 시간, 키워드, 가구 크기 등의 데이터를 이용해서 타겟 정확도를 높이는 마케팅에 이용
  73. 73. 그래서 어디에 사용할거에요? 이. 온도, 습도, 조도, 거리, 행동 패턴 학습을 통한 개인 추천 서비스에 이용
  74. 74. 감사합니다 ;-) 박미정 mjpark03@gmail.com
  75. 75. Q1. 입문자가 머신러닝 알고리즘을 선택하기 위한 TIP? Scikit-Learn 에서는 적절한 알고리즘을 선택할 수 있도록 Cheat Sheet를 제공해요
  76. 76. Q1. 입문자가 머신러닝 알고리즘을 선택하기 위한 TIP? 알고리즘 선택에 어려움이 있다면, 다음 Cheat Sheet을 참고해서 시작해보세요
  77. 77. Q1. 입문자가 머신러닝 알고리즘을 선택하기 위한 TIP?
  78. 78. Q2. 과적합(Overfitting) 해결을 위한 TIP? 특정 모델이 train set에 너무 정확하게 학습된 경우, test set에 대해서는 오차가 크게 발생하게 되요
  79. 79. Q2. 과적합(Overfitting) 해결을 위한 TIP? 이 경우를 과적합(Overfitting)이라고 표현해요
  80. 80. Q2. 과적합(Overfitting) 해결을 위한 TIP? 특정한 케이스가 아닌 일반적인(general) 결과를 낼 수 있어야 해요
  81. 81. Q2. 과적합(Overfitting) 해결을 위한 TIP? 많이 사용되는 방법 중의 하나는 cross validation이 있어요
  82. 82. Q2. 과적합(Overfitting) 해결을 위한 TIP? cross validation은 train set의 일부를 train 목적으로 사용하고, 나머지를 validation 용도로 사용해요
  83. 83. Q2. 과적합(Overfitting) 해결을 위한 TIP? 그리고 train 목적과 validation 부분을 변경해가며 반복하면서 오차율을 줄여나가게 되요
  84. 84. Q2. 과적합(Overfitting) 해결을 위한 TIP? Scikit-Learn을 이용해서 쉽게 적용할 수 있어요
  85. 85. Q2. 과적합(Overfitting) 해결을 위한 TIP? from sklearn.cross_validation import cross_val_score score = cross_val_score(model, X_train, y_train, cv=20, scoring=rmsle_score).mean()


...


반응형

+ Recent posts