관리 메뉴

TEAM EDA

Winning Tips on Machine Learning Competitions by Kazanova, Current Kaggle #3 본문

EDA Study/캐글

Winning Tips on Machine Learning Competitions by Kazanova, Current Kaggle #3

김현우 2019. 9. 11. 10:12

Winning Tips on Machine Learning Competitions by Kazanova, Current Kaggle #3

Introduction

머신러닝은 교활합니다(?). 너가 얼마나 많은 책을 읽든지, 많은 문제를 풀고 튜토리얼을 끝냈든지 ~. 특히 너가 머신러닝에 일찍 접했을 수록. 그렇지 않니?

이번 포스트에서는, 너는 많은 사람들이 경험한 머신러닝모델을 생성하는 근본적인 팁에 대해 배울 것이다. 이 팁들은 Marios Michaildis (a.k.a Kazanova), 캐글 그랜드마스터, 2016년 5월 5일 현재 Current Rank #3에 의해 공유되었습니다.(참고로, 지금은 5등입니다)

  1. 영상 자료 - 유튜브 링크
  2. 슬라이드 자료 - 슬라이드쉐어 링크
  3. 질의 응답 자료 - 아래의 부분에 작성되어 있습니다.

대회에서 성공하는 가장 중요한 부분은 꾸준함입니다. Marios가 말하기를, '내가 첫번째로 Top20에 들은 대회(Acquired valued shoppers challenge)는 캐글에 참여한지 1년 후입니다. 4기가의 램을 가진 노트북'. 이래도 너는 포기할 계획이야?

만약 Q & A를 읽으면서 궁금한게 생기면, 자유롭게 아래에 물어봐줘!

Questions & Answers

Q1. ML 문제를 해결하기 위해 따라야 할 과정은 무엇입니까? 처음 단계부터 설명해주십시오.

A1. 다음은 ML 문제를 해결하는 동안 수행해야 할 단계입니다.

  1. 데이터를 이해하기 - 데이터를 다운로드 한 후 변수들을 탐색하십시오. 데이터의 형태를 살펴보고, 변수의 클래스를 확인하십시오. 변수의 본질을 이해하기 위해 univariate 혹은 bivariate 그래프를 그려보십시오.
  2. 최적화를 위한 평가함수 이해하기 - 모든 문제에는 고유 한 평가함수(metric)가 있습니다. 이것을 이해하는 것은 필수적입니다, 특별히 그것이 목표 변수와 어떻게 변하는가?
  3. Cross validation 전략 결정 - 과대 적합(Overfitting)을 방지하기 위해서, 초기에 좋은 Cross validation전략을 세워야 합니다. CV전략은 리더보드에서 신뢰할 수 있는 점수를 얻는 데 도움이 됩니다.
  4. 하이퍼 파라미터 튜닝 시작 - 일단 CV를 결정하였으면 하이퍼 파라미터 튜닝을 사용하여 모델의 정확도를 향상시킵니다. 또한 다음 단계가 포함됩니다.
  • 데이터 변환 : 스케일링, 이상치 제거, null 값 처리, 범주 형 변수 변환, 변수 선택, 상호 작용 변수생성 등의 단계가 포함됩니다.
  • 알고리즘 선택 및 하이퍼 매개 변수 조정 : 모델 성능이 어떻게 변하는지를 이해하기 위해 여러 알고리즘을 사용해보십시오.
  • 결과 저장 : 위에서 교육 한 모든 모델에서 예측치를 저장하십시오. 그들은 앙상블에 유용 할 것입니다.
  • 모델 결합 : 마지막으로, 여러 수준의 모델을 앙상블합니다. 최상의 결과를 얻으려면 모델끼리의 상관 관계를 확인하십시오.

Q2. 문제를 해결하기 위해 따라야 할 모델 및 데이터 조작 기술은 무엇입니까?

A2. 일반적으로 대부분의 문제에 대해 모든 방법을 시도합니다. 원칙적으로 :

  • 시계열 : GARCH, ARCH, regression, ARIMA 모델 등을 사용합니다.
  • 이미지 분류 : 저는 파이썬에서 deep learning(convolutional nets)을 사용합니다.
  • 사운드 분류 : 일반적인 신경망(neural networks)
  • High cardinality (e.g. 텍스트 데이터) : linear models, FTRL, Vowpal wabbit, LibFFM, libFM, SVD 등을 사용합니다.

다른 모든 것들을 위해서, 나는 XGBoost와 LightGBM과 같은 Gradient boosting 모델과 keras, Lasagne, caffe, Cxxnet 같은 deep learning을 사용합니다. 다음으로 변수 선택 방법을 사용할 모델을 결정합니다. 내가 사용하는 변수 선택 방법에는 다음이 포함됩니다.

  • Forward (cv 또는 not) - null 모델에서 시작합니다. 한 번에 하나의 기능을 추가하고 CV 정확도를 확인하십시오. 변수를 유지하는 것이 향상되면 유지하고 그렇지 않으면 삭제합니다.
  • Backward (cv 또는 not) - 전체 모델에서 시작하여 하나씩 변수를 제거합니다. CV 정확도는 변수를 제거하고 버리면 향상됩니다.
  • Mixed (또는 stepwise) - Forward와 Backward의 혼합.
  • Permutations
  • Feature Importance 사용 - random forest, gbm, xgboost의 변수 선택 사용.
  • chi-square test, anova와 같은 몇 가지 통계 방법 적용.

데이터 조작은 모든 문제마다 다를 수 있습니다.

  • Time series : 이동평균법(Moving Average), 차분(derivatives) 계산. 이상치 제거.
  • Text : tfidf, countvectorizers, word2vec, svd (dimensionality reduction), Stemming, spell checking, sparse matrices, likelihood encoding, one hot encoding (or dummies), hashing 와 같은 방법 사용.
  • Image classification: scaling, resizing, removing noise (smoothening), annotating 등등 사용.
  • Sounds : Furrier Transforms , MFCC (Mel frequency cepstral coefficients), Low pass filters 등등 계산.
  • Everything else : Univariate feature transformations (like log +1 for numerical data), feature selections, treating null values, removing outliers, converting categorical variables to numeric.

Q3. Cross validation 전략을 자세하게 설명해 줄 수 있습니까?

CV는 train에서 무작위로 2 sets를 생성한다는 것을 의미합니다. 나는 처음으로 알고리즘을 구축 (훈련)하고 (훈련 세트라고 부름), 다른 것을 득점한다 (검증 세트라고 부름). 이 프로세스를 여러 번 반복하고 최적화하려는 측정 항목과 관련하여 내 모델이 테스트 세트에서 수행하는 작업을 항상 확인합니다.

프로세스는 다음과 같습니다.

  • 10 (당신은 얼마나 많은 X를 선택 하는가?) 시간
  • 교육에서 세트 분할 (원본 데이터의 50 % -90 %)
  • 그리고 검증 (원본 데이터의 50 % -10 %)
  • 그런 다음 알고리즘을 학습 집합에 맞 춥니 다.
  • 유효성 검사 집합에 점수를 매 깁니다.
  • 선택한 측정 항목에 대해 해당 점수의 결과를 저장하십시오.
  • 이 10 (X) 시간의 평균을 계산하십시오. 실생활에서이 점수를 얼마나 기대 하느냐는 일반적으로 좋은 견적입니다.
  • 이러한 X 스플릿을 복제 할 수 있으려면 SEED를 사용해야합니다.

고려해야 할 다른 사항은 Kfold 및 계층화 된 KFold입니다. 여기를 읽으십시오. 시간에 민감한 데이터의 경우 테스트를 진행할 때 항상 미래를 예측할 수있는 규칙이 있는지 확인하십시오.

Q4. Can you please explain some techniques used for cross validation?

  • Kfold
  • Stratified Kfold
  • Random X% split
  • Time based split
  • 대용량 데이터의 경우 하나의 유효성 검사 세트만으로 충분할 수 있습니다 (데이터의 20 %와 같이 여러 번 할 필요가 없음).

Q5. 기계 학습의 기술을 어떻게 향상 시켰습니까? 어떤 교육 전략을 사용 했습니까?

나는 2 개의 재료를 혼합했다. 게다가 많은 자조 연구가 있었다. 나란히, 프로그래밍과 소프트웨어 (자바)와 수많은 Kaggling

Q6. 데이터 과학자에게 가장 유용한 파이썬 라이브러리는 무엇입니까?

다음은 문제 해결에 가장 유용하다고 생각하는 라이브러리입니다.

  • Data Manipulation
  • Numpy
  • Scipy
  • Pandas
  • Data Visualization
  • Matplotlib
  • Machine Learning / Deep Learning
  • Xgboost
  • Keras
  • Nolearn
  • Gensim
  • Natural Language Processing
  • NLTK

Q7. 모든 변수가 본질적으로 범주 형일 때 누락 된 값을 대체하거나 범주 형 레이블을 예측하는 유용한 ML 기법 / 전략은 무엇입니까?

누락 된 값을 입력하는 것은 중요한 단계입니다. 때로는 가치가 누락 된 경향이있을 수 있습니다. 다음은 내가 사용하는 몇 가지 기술입니다.

  • 전승을 위해 평균, 모드, 중앙값을 사용하십시오.
  • 변수의 정상 값 범위를 벗어난 값을 사용하십시오. -1 또는 -9999 등
  • 우연으로 대체하십시오 (예 : 목표 변수와 관련된 것.
  • 의미있는 것으로 대체하십시오. 예 : 때때로 null은 0을 의미 할 수 있습니다.
    • 알려진 값의 하위 집합을 기준으로 누락 값 예측
    • 널값이 많은 행을 제거하는 것이 좋습니다.

Q8. 어떤 종류의 하드웨어 투자를했는지, 즉 심층 학습 관련 작업을위한 자신의 PC / GPU 설정을 정교하게 설명 할 수 있습니까? 아니면 더 많은 클라우드 기반 GPU 서비스를 사용하고 계셨습니까?

A8. 나는 나의 첫 번째 경쟁에서 우승하여 (가치있는 구매자 도전 과제 획득) 4GB RAM 노트북 (i3)에 지속적으로 참여한 후 kaggle의 상위 20 위를 차지했습니다. 나는 지금까지 자바로 자체 제작 된 솔루션을 사용하고 있었다. 그 경쟁에는 총 300,000,000 행의 트랜잭션 데이터가 있었기 때문에 데이터를 구문 분석하고 메모리 사용을 최소한으로 유지해야했습니다. 그러나 그 이후로 나는 랭크 1에 오르기 위해 좋은 투자를했다. 이제 32 코어와 256GB RAM의 Linux 서버에 액세스 할 수 있습니다. 나는 또한 geforce 670 기계 (깊은 학습 / GPU 작업). 또한 저는 주로 파이썬을 사용합니다. 아마존의 AWS도 고려해 볼 수 있습니다. 그러나 대부분의 경우 AWS를 사용하는 것이 비용이 높을 수 있기 때문에 이것이 가장 중요한 부분에 관심이있는 경우가 대부분입니다.

Q9. GPU와 같은 고성능 컴퓨터를 사용하고 있습니까? 또는 예를 들어 무작위 포리스트 (예 :)에 대한 매개 변수에 대한 그리드 검색과 같은 작업을 수행합니까? 많은 시간이 소요되므로 어떤 컴퓨터를 사용합니까?

A9. 나는 모든 심층 학습 모델을 위해 GPU를 사용합니다 (GeForce 670과 같이 매우 빠르지는 않습니다). 나는 깊은 학습을 위해서 GPU가 반드시 필요하다는 것을 말해야 만합니다. 평범한 GPU는 단순한 nn (예 : 심층 학습)을 50-70 배 빠르게 할 수있는 반면, CPU에서 신경망을 학습하는 데는 시간이 걸립니다. 나는 그리드 검색을 좋아하지 않는다. 나는 이것을 상당히 수동적으로한다. 나는 처음에는 느릴 수도 있다고 생각하지만 잠시 후 첫 번째 매개 변수 세트로 알맞은 솔루션을 얻을 수 있습니다! 그 이유는 각 문제에 가장 적합한 매개 변수를 배우고 이러한 방식으로 알고리즘을 더 잘 알 수 있기 때문입니다.

Q10. 사람들은 80 개 이상의 모델을 어떻게 구축할까요? 하이퍼 파라미터 튜닝을 변경하면됩니까?

A10. 시간이 걸린다. 어떤 사람들은 그것을 다르게합니다. 과거에 작동했던 몇 가지 매개 변수 집합을 가지고 있으며이 값으로 초기화 한 다음 바로 옆에있는 문제를 기반으로 매개 변수를 조정하기 시작합니다. 분명히 더 많은 영역 (어떻게 작동 하는지를 알기 위해 하이퍼 파라미터로)을 탐색하고 각 모델에 대한 과거의 성공적인 하이퍼 파라미터 조합을 풍부하게 할 필요가 있습니다. 다른 사람들이하는 일도 고려해야합니다. 하이퍼 파라미터의 최적 세트는 단 하나뿐입니다. 당신이 가진 것보다 완전히 다른 매개 변수 세트로 비슷한 점수를 얻는 것도 가능합니다.

Q11. 언쟁하는 사람의 계급을 어떻게 개선합니까? 때때로 나는 어떤 경쟁에서 일하는 동안 희망이 없다고 느낍니다.

그것은 하룻밤 사이의 과정이 아닙니다. 번쩍 번쩍하는 소리 나 다른 곳에서의 개선은 시간이 지남에 따라 발생합니다. 바로 가기가 없습니다. 계속 일을해야합니다. 다음은 제가 추천 한 것들입니다 :

  • 더 나은 프로그래밍 학습 : R을 알고 있으면 파이썬을 배우십시오.
  • 학습 도구 유지 (아래 나열)
  • 몇 권의 책을 읽으십시오.
  • '지식'대회에서 뛰다.
  • 커널이나 과거 대회에서 다른 사람들이하고있는 것을 보시려면 '이기는 솔루션 섹션'
  • 더 많은 경험을 가진 사용자와 팀을 구성해야하지만, 이렇게되기 전에 순위를 약간 향상시켜야합니다.
  • 코드 뱅크 만들기
  • 놀이 ... 많이!

Q12. 기계 학습에 사용되는 유용한 도구에 대해 알려줄 수 있습니까?

다음은 내가 좋아하는 도구 목록입니다.

  • 선형 선형 : 선형 모델의 경우
  • 지원 벡터 시스템 용 LibSvm
  • 모든 기계 학습 모델에 대한 Scikit Learn
  • 빠른 확장 가능한 그라디언트 증폭을위한 Xgboost
  • LightGBM
  • 빠른 메모리 효율적인 선형 모델을위한 Vowpal Wabbit
  • 신경망에 대한 http://www.heatonresearch.com/encog encog
  • 많은 모델에서 R in H2O
  • LibFm
  • LibFFM
  • 자바에서 Weka (모든 것을 가지고있다)
  • 인수 분해를위한 그래프 Graphchi
  • 많은 것들을위한 GraphLab
  • Cxxnet : 컨볼 루션 신경망을 구현하는 가장 좋은 방법 중 하나입니다. 설치가 어렵고 NVDIA 그래픽 카드로 GPU가 필요합니다.
  • RankLib : NDCG와 같은 최적화 기능을 지원하는 순위 알고리즘 (예 : 고객을위한 순위 제품)에 적합한 Java에서 만들어진 최고의 라이브러리입니다.
  • 신경망을위한 KerasLasagne. 이것은 당신이 Theano 또는 Tensorflow를 가지고 있다고 가정합니다.

Q13. 기계 학습으로 시작하는 방법은 무엇입니까?

저는 유타 대학교의 슬라이드를 좋아합니다. 기계 학습에 대한 기본 알고리즘과 개념을 이해하는 데 도움이됩니다. 이 책은 파이썬 용입니다. 나는이 책을 너무 좋아한다. 멋진 scikit 문서를 읽는 것을 잊지 마십시오. 아나콘다의 jupyter 노트북을 사용하십시오.

당신은 여기에 kaggle에서 나를 도왔던 많은 좋은 링크를 발견 할 수있다. 'Kaggle에서 어떻게 더 잘 했니'

또한 Andrew Ng의 기계 학습 과정을 수행해야합니다. 이와 함께 mlwave, fastml, analyticsvidhya와 같은 좋은 블로그를 팔로우 할 수 있습니다. 그러나 가장 좋은 방법은 손을 더럽히는 것입니다. 약간의 개소리를해라! "지식"깃발을 가지고 경쟁을 시작한 다음 주요 기사들 중 일부를 다루기 시작하십시오. 더 오래된 것들도 다뤄보십시오.

Q14. Kaggle과 일반적으로 대용량 데이터 세트에서 어떤 기술이 가장 잘 수행됩니까? 메모리 문제를 해결하는 방법?

높은 카디널리티를 가진 큰 데이터 세트는 선형 모델로 잘 처리 될 수 있습니다. 스파 스 모델을 고려하십시오. vowpal wabbit과 같은 도구. FTRL, libfm, libffm, liblinear는 python에서 좋은 도구 행렬입니다 (csr 행렬과 같은 것). 더 작은 부분의 데이터에 대해 훈련 된 모델을 통합하는 것을 고려하십시오.

Q15. 기계 학습과 관련된 프로젝트의 SDLC (소프트웨어 개발 수명주기) 란 무엇입니까?

  • 산업 프로젝트 및 관련 단계에 대한 설명을 제공하여 사용 방법을 알 수 있도록하십시오. 기본적으로 나는 학습 단계에 있으며 산업 수준의 노출을 기대합니다.
  • 비즈니스 질문 : 구매를 늘리기 위해 온라인으로 제품을 추천하는 방법.
  • 이것을 ml 문제로 변환하십시오. 이전에 권장 사항에 대한 일부 노출이 있었을 때 고객이 클릭 / 구매를 할 가능성이있는 시점에 일부 데이터를 사용할 수 있다면 향후 고객이 구매할 것으로 예측하십시오.
  • 테스트 / 검증 프레임 워크를 구축하십시오.
  • 고객이 선택한 것을 가장 잘 예측할 수있는 최상의 솔루션을 찾아보십시오.
  • 시간 / 비용 효율성 및 성능 고려
  • 모델 매개 변수 / 파이프 라인 설정 내보내기
  • 온라인 환경에서이를 적용하십시오. 모든 고객이 아닌 일부 고객을 노출하십시오. 테스트 및 제어 그룹 유지
  • 알고리즘이 얼마나 잘 작동하는지 평가하고 시간이 지남에 따라 조정합니다.

Q16. 좋아하는 기계 학습 알고리즘은 무엇입니까?

그것은 Gradient Boosted Trees 여야합니다. 다른 일을해도 모든 것이 좋을 수 있습니다.

Q15. 깊은 학습, R 또는 파이썬에 가장 적합한 언어는 무엇입니까?

나는 파이썬을 선호한다. 나는 그것이 더 프로그램이라고 생각한다. R도 좋습니다.

Q16. 데이터 과학 분야에서 직업 전환을 시도하는 사람은 기술적 기술을 제쳐두고 무엇을 얻을 필요가 있습니까? 개발자의 배경 지식이 없기 때문에 개인 프로젝트가 내 지식을 선전하는 가장 좋은 방법일까요?

비즈니스 문제를 기계 학습으로 변환하고이를 해결할 수있는 문제로 변환하는 기능.

Q17. 일반 기능 공학 (예 : 예측 자의 탐색 및 재조합)이 정확도를 높이기 위해 예측 모델을 개선하는 것보다 효율적이라는 의견에 동의하십니까?

원칙적으로 - 네. 나는 모델 다양성이 몇 가지 강력한 모델을 갖는 것보다 낫다고 생각합니다. 그러나 그것은 문제에 달려 있습니다.

Q18. Kaggle의 리더 보드에 올라야하는 기술은 데이터 과학자로서 일상 업무에 필요한 기술입니까? 아니면 교차합니까? 또는 다소 다릅니다. Kaggle 대회를 기반으로 데이터 과학자의 직업이 무엇인지 생각해 볼 수 있습니까? 그리고 사람이 Kaggle에서 잘한다면 그녀는 자신의 경력에서 성공적인 데이터 과학자가 될 것이라고 말합니까?

예측 모델 만들기, 파이썬 / R을 통한 데이터 작업 및 보고서 작성 및 시각화와 관련하여 특히 겹치는 부분이 있습니다. Kaggle이 제공하지 않는 것은 (그러나 당신은 약간의 아이디어를 얻을 수 있습니다) :

  • 비즈니스 질문을 모델링 (감독이 가능한) 문제로 변환하는 방법
  • 배포 후 모델 모니터링 방법
  • 스테이크 홀더에게 어려운 개념을 (여러 번) 설명하는 법.
  • 업계 세계에서 좋은 kaggler를위한 공간이 항상 있다고 생각합니다. 데이터 과학은 여러 가지 가능한 경로를 가질 수 있습니다. 예를 들어 모두가 자신의 업무에서 기업가가되는 경향이 없거나 고객이 직면하게되는 것이 아니라 매우 특정한 (기술) 작업을 해결할 수 있습니다.

Q19. 경쟁 경쟁에서 잘 수행하려면 어떤 기계 학습 개념이 있어야합니까?

  • Data interrogation/exploration
  • Data transformation – pre-processing
  • Hands on knowledge of tools
  • Familiarity with metrics and optimization
  • Cross Validation
  • Model Tuning
  • Ensembling

Q20. 데이터 과학자의 미래를 어떻게 알 수 있습니까? 자동화가이 직업을 죽일 것인가?

아니, 그렇게 생각하지 않아. 이것이 컴퓨팅을 통한 자동화에 대해 말했던 것입니다. 하지만 일을 끝내기 위해 많은 개발자가 필요했습니다. 데이터 과학자들은 비즈니스 질문을 ml 문제로 번역하고 일반적으로 모델링 프로세스의 관리자 / 감독자처럼 프로세스의 목자가되는 것처럼 시간이 지남에 따라보다 유연한 작업에 집중할 수 있습니다.

Q21. R과 Python에서 앙상블 모델링을 사용하여 예측 정확도를 높이는 법. 실제 사례를 인용 해주십시오.

당신은 Kaggle 경쟁을 기반으로 다른 기계 기대어 방법을 설명하면서 내 github 스크립트를 볼 수 있습니다. 또한 이 앙상블 안내서를 확인하십시오.

Q22. 파이썬 깊은 학습 라이브러리 또는 텍스트 분석을위한 프레임 워크는 무엇입니까?

Keras (이제는 희소 한 데이터를 지원하기 때문에), Gensim (단어 2 vec)을 좋아합니다.

Q23. 실생활에서이 대회를 통해 얻은 지식은 얼마나 가치가 있습니까? 가장 자주 나는 모델이 많은 모델을 모아서 경쟁을 얻는 것을 본다. 실제 생산 시스템의 경우인가? 또는 실제 제작 시스템에서 이러한 괴물 앙상블보다 해석 가능한 모델이 더 가치가 있습니까?

어떤 경우에는 예 - 해석 가능하거나 빠르거나 더 효율적입니다. 그러나 사람들은 블랙 박스 솔루션을 두려워하지 않고 정확성에 초점을 맞추기 때문에 시간이 지남에 따라 변화 할 것입니다.

Q24. 알고리즘을 학습하는 기계에 대해 내부에 대해 배우는 것에 대해 걱정할 필요가 있습니까? 아니면 알고리즘을 이해하고 경쟁을 통해 사용하고 실제 비즈니스 문제를 해결하기 위해 노력하십시오.

내부가 필요하지 않습니다. 나는 모든 내부 구조를 모른다. 그렇게하면 좋지만 필요는 없습니다. 또한 매일 매일 새로운 것들이 나옵니다. 때로는 그것을 추적하기가 어렵습니다. 그렇기 때문에 과도한 투자보다는 알고리즘의 적절한 사용에 초점을 맞추어야합니다.

Q25. 불균형 데이터를위한 최고의 기계 학습 기술은 무엇입니까?

나는 여기서 특별한 대우를하지 않는다. 사람들이 이상하게 여기는 걸 압니다. 이것은 (나를 위해) 올바른 메트릭을 최적화하는 것으로 귀결됩니다. 몇 줄에서 설명하기가 어렵습니다. 샘플링에는 많은 기법이 있지만 사용하지 않아도됩니다. 어떤 사람들은 Smote를 사용하고 있습니다. 대상 변수의 주요 분포를 변경하려고 시도 할 때 가치가 표시되지 않습니다. 증대되거나 변경된 교장 선거 확률로 끝납니다. 당신이 정말로 행동해야하는지 아닌지를 결정하기 위해 컷오프 (cut-off)를 원한다면, 당신은 교조 확률에 따라 그것을 설정할 수 있습니다.

나는 이것에 대답하는 가장 좋은 사람이 아닐지도 모른다. 개인적으로 목표 변수의 분포 또는 목표 변수의 확률에 대한 인식을 변경하는 것이 유용하다는 것을 결코 발견하지 못했습니다. 이 작업을 처리 할 때 다른 알고리즘이 다른 알고리즘보다 우수 할 수 있습니다 (예 : 트리 기반 트리는이 작업을 처리 할 수 있어야합니다).

Q26. 일반적으로 마케팅 연구 문제는 대부분 선형 회귀 분석, 회귀 분석, 클러스터링, 요인 분석 등의 표준 회귀 기술을 사용하여 처리되었습니다. 제 질문은 마케팅 연구 또는 비즈니스 문제에 유용한 기계 학습 및 심층 학습 기법 / 알고리즘이 얼마나 유용합니까? 예를 들어, 신경망의 출력을 클라이언트에게 해석하는 것이 얼마나 유용한가? 당신이 참조 할 수있는 자원이 있습니까?

그들은 아마도 선형성 모델 (예 : 회귀 분석)에 비해 정확도 (마케팅 반응을 예측한다고 가정 할 때)를 향상시킬 수 있다는 점에서 유용합니다. 출력을 해석하는 것은 어렵습니다. 일반적으로 더 많은 블랙 박스와 복잡한 솔루션으로 옮겨 가면서 제 의견으로는 필요하지 않습니다.

데이터 과학자로서 당신은 당신이 얻고있는 예측의 유형을 얻는 이유를 이해하려고 노력하면서 관찰되지 않은 (테스트) 데이터에서 당신의 결과가 얼마나 좋은지를 테스트 할 수있는 방법을 확실히 가지고 노력해야합니다. 나는 모델을 복잡하게 만드는 것으로부터 정보를 압축 해제하는 것이 좋은 주제라고 생각한다. 그러나 연구를 위해 유효하다. 그러나 필자는 필자가 필요하다고 생각하지 않는다.

다른 한편, 기업, 사람, 데이터 과학자, 통계 학자 및 일반적으로 '데이터 과학 플레이어'로 분류 될 수있는 사람들은 블랙 박스 솔루션을 완벽하게 정상적으로 받아 들일 수 있도록 교육 받아야합니다. 이 작업은 시간이 걸릴 수 있으므로 수행중인 다른 모델링과 함께 일부 회귀 분석을 실행하고 일반적으로 설명 그래프 및 요약 정보를 제공하여 모델이 그와 같은 성능을 발휘할 수있는 사례를 만드는 것이 좋습니다.

Q27. Kaggle에서 협력 할 팀을 만드는 방법은 무엇입니까?

포럼 (예 : 번쩍 번쩍하는 소리)에서 질문 할 수 있습니다. 이것은 '사람들이 당신을 믿을 수 있기'전에 몇 가지 경쟁을 치를 수 있습니다. 이유는, 그들은 경쟁 규정을 위반하는 중복 계정을 두려워하기 때문에, 사람들은 공정한 게임을하는 것으로 입증 된 사람을 선호하게됩니다. 시간이 경과했다면, 당신은 당신이 배우기를 희망하는 사람들과 일반적으로 당신보다 다른 접근법을 택할 사람들을 생각할 필요가 있습니다. 그래서 당신은 방법을 결합 할 때 다양성의 이점을 활용할 수 있습니다.

Q28. 기본 기계 학습 과정 (이론적)을 마쳤습니다. 이제 실용적인 여정을 시작합니다. sci-kit를 통해 문서를 배우는 것이 좋습니다. 이제 사람들이 TENSORFLOW가 다음 scikit을 배울 것이라고 말합니다. scikit을 통과해야합니까? 아니면 TF가 좋은 선택입니까?

나는이 문장에 동의하지 않는다. 사람들은 TENSORFLOW가 다음 scikit learn이라는 것을 말하고있다. Tensorflow는 특정 학습 작업 (예 : 깊은 학습)을 수행하기위한 프레임 워크입니다. 둘 다 배울 수 있다고 생각하지만, 나는 scikit으로 시작할 것입니다. 나는 개인적으로 TensorFlow를 모른다. 그러나 나는 텐서 흐름 (예를 들어 Keras)을 기반으로하는 도구를 사용한다. 나는 게으른 것 같아요!

Q29. 경쟁에서 직면하게되는 주요 과제는 데이터를 정리하고 예측 모델에 사용할 수 있도록 만드는 것입니다. 어떻게 극복합니까?

네. 나는 클럽에 가입한다! 잠시 후에 당신은 이것을 비교적 빨리 처리 할 수있는 파이프 라인을 생성 할 것입니다. 그러나 ... 당신은 항상 여기에 시간을 보낼 필요가 있습니다.

Q30. 강력한 머신을 사용하지 않고 큰 데이터를 계산하는 방법은 무엇입니까?

모든 것을 한 줄씩 파싱하는 vowpal wabbit 및 온라인 솔루션과 같은 도구를 고려해야합니다. 프로그래밍에 더 많은 투자를해야합니다.

Q31. What is Feature Engineering?

In short, feature engineering can be understood as:

  • Feature transformation (e.g. converting numerical or categorical variables to other types)
  • Feature selections
  • Exploiting feature interactions (like should I combine variable A with variable B?)
  • Treating null values
  • Treating outliers

Q32. 컴퓨터 학습에서 중요한 수학 기술은 무엇입니까?

선형 대수 (예 : 벡터)와 함께 몇 가지 기본 확률. 그러면 일부 통계도 도움이됩니다. 평균, 빈도, 표준 편차 등.

Q33. Can you share your previous solutions?

See some with code and some without (just general approach).

Q34. 귀하의 첫 번째 기계 학습 예측자를 구축하는 데 얼마나 오래 걸려야합니까?

문제 (크기, 복잡성, 기능 수)에 따라 다릅니다. 시간에 대해 걱정할 필요가 없습니다. 일반적으로 처음에는 훨씬 나중에 쉽게 생각할 수있는 것에 많은 시간을 할애 할 수 있습니다. 프로그래밍, 배경 또는 다른 경험을 고려할 때 각 사람마다 다를 수 있으므로 시간에 대해 걱정할 필요가 없습니다.

Q35. 당신이 Kaggle처럼 반드시 레벨에서 경쟁하지는 않지만 당신의 기술을 키울 수있는 곳에서 추천 할 수있는 지식 대회가 있습니까?

여기에 타이타닉과 숫자 인식기는 모두 좋은 경쟁입니다. 타이타닉은 플랫 파일을 사용하기 때문에 더 좋습니다. 숫자 인식기는 이미지 분류 용이므로 더 고급화 될 수 있습니다.

Q36. Weka 및 / 또는 R vs Python을 기계 학습 학습에 사용하는 것에 대한 귀하의 견해는 무엇입니까?

나는 Weka를 좋아해. 특히 알고리즘을 배우고 싶다면 좋은 문서가 있습니다. 그러나 나는 그것이 R과 Python 구현의 일부만큼 효율적이지 않다는 것을 인정해야한다. 그것은 좋은 범위를 가지고있다. Weka는 몇 가지 훌륭한 시각화 기능을 제공합니다 - 특히 일부 트리 기반 알고리즘의 경우. 나는 당신의 배경이 엄격하게 Java가 아니라면 처음에는 R과 Python에 집중할 것을 제안 할 것이다.

Summary

요약하면, 기계 학습 경쟁에 성공하는 것은 새로운 일을 배우고, 많은 시간 교육, 기능 공학 및 검증 모델을 소비하는 것입니다. 함께 포럼에서 커뮤니티와 상호 작용하고, 블로그를 읽고 동료 경쟁자의 접근으로부터 배우십시오.

당신이 계속 노력한다면 성공은 임박한 것입니다. 건배!