@ogrisel이 강조한 것처럼 scikit-learn은 Python을위한 최고의 머신 러닝 패키지 중 하나입니다. 100k (스파 스)의 작은 특징과 10k 샘플의 데이터 세트, 심지어 200k 개 이상의 행을 포함 할 수있는 약간 더 큰 데이터 세트에도 적합합니다. 기본적으로 메모리에 맞는 모든 데이터 세트.
그러나 확장 성이 뛰어난 Python Machine Learning 프레임 워크를 찾고 있다면 Pyspark MLlib를 적극 권장합니다. 요즘의 데이터 세트는 기하 급수적으로 커질 수 있기 때문에 (빅 데이터 및 딥 러닝 물결을 감안할 때) 모델 교육 단계뿐만 아니라 기능 엔지니어링 단계 (기능 변환 단계)에서도 잘 확장되고 빠르게 실행될 수있는 플랫폼이 필요합니다. , 기능 선택). 관심있는 Spark Mllib 플랫폼에 대한 세 가지 메트릭을 모두 살펴 보겠습니다.
확장 성 :
데이터 세트가 메모리에 맞으면 scikit-learn을 선택해야합니다. 메모리에 맞추기에는 너무 큰 경우 Spark를 사용하는 것이 좋습니다. 여기서 주목해야 할 것은 Spark는 분산 설정에서만 더 빠르게 작동한다는 것입니다.
포괄 성 :
Sklearn은 스파크 mllib와 비교할 때 일반적으로 사용되는 많은 수의 알고리즘을 적절하게 구현하는 측면에서 훨씬 풍부합니다. 데이터 조작 및 변환에 대한 지원도 scikit-learn에서 더 풍부합니다. Spark Mllib에는 대부분의 트릭을 수행하는 충분한 데이터 변환 모듈이 있습니다. 따라서 확장 성 문제로 인해 Spark mllib로 끝나더라도 작업을 계속 수행 할 수 있습니다. 상관 분석, 기능 추출 (tf-idf, word2vec, CountVectorizer), 기능 변환 (Tokenizer, StopWordsRemover, nn-gram, Binarizer, PCA 등)을 모두 지원합니다. 자세한 목록은 아래 링크를 참조하십시오.
Spark mllib에서 기능 추출, 변환 및 선택
- 분류 :
Spark mllib에는 대부분의 시간 (텍스트 분류에 잘 작동하는 알고리즘 포함)을 사용하는 모든 주요 알고리즘 구현이 있습니다. mllib를 통해 사용 가능한 알고리즘에 대한 자세한 개요는 아래 링크를 참조하십시오.
Mllib 분류 및 회귀
보너스 : Apache Spark는 Python, R, Java 및 Scala를 지원합니다. 따라서 내일 다른 언어 (개인 선택 또는 전문적인 이유로)로 실험하기로 결정한 경우 완전히 새로운 프레임 워크를 배울 필요가 없습니다.