시간 구성 216

혼잡 인지 모델 검증(Loss 구하기)

현재 진행중인 혼잡 인지 모델 개발 과제에서 Spark으로 구현한 Linear Regression 모델의 성능을 측정하였다. 먼저 CrossValidation Class를 이용하여 교차 검증을 하였다. CrossValidation 을 생성하면 Default 가 로딩된 데이터를 3벌로 나누고 2벌은 Training으로 사용하고 1벌은 Test 용도로 사용된다. (70:30 비율) val crossval = new CrossValidator() .setEstimator(pipeline) .setEvaluator(new RegressionEvaluator().setLabelCol("loading_time")) .setEstimatorParamMaps(paramGrid) Spark.org에 가면 CrossVal..

Option Class 와 map

Scalar에는 Option Class가 존재한다.이 클래스는 Java언어에서 특정 Method가 Null을 return할 경우, 매번 확인해야하는 Bolier plate 코드를 계속 삽입해야하는 불편함과 Null dereference오류를 방지하기 위해 고안된 클래스다. 이 클래스를 설명한 Scalar Doc을 참고하면 "Represents option values, Instances of Option are either an instance of Some or the Object None. The Most idiomatic way to use an Option instance is to treat it as a collection or monad and use map, flatMap, filter, ..

모델 평가(1/2)

이 부분은 가장 중요한 부분인데 평가에 대한 이론적인 부분과 어떻게 적용해서 검증했는지에 대해두개 Part로 구분하여 설명한다. Spark ML Guide에서는 아래와 같이 설명하고 있다. ML에서 중요한 작업은 모델 선택 또는 데이터를 사용하여 주어진 작업에 대한 최상의 모델 또는 매개 변수를 찾는 것입니다. 이를 튜닝이라고도합니다 LogisticRegression과 같은 개별 Estimator 또는 다중 알고리즘, 기능 부여 및 기타 단계가 포함 된 전체 파이프 라인에 대해 튜닝을 수행 할 수 있습니다. 사용자는 파이프 라인의 각 요소를 개별적으로 조정하지 않고 전체 파이프 라인을 한 번에 조정할 수 있습니다. Spark 은 모델 선택을 지원하기 위해 CrossValidator 와 TrainValid..

Spark.mllib vs Spark.ml

DataFrame-based API is primary API The MLlib RDD-based API is now in maintenance mode. As of Spark 2.0, the RDD-based APIs in the spark.mllib package have entered maintenance mode. The primary Machine Learning API for Spark is now the DataFrame-based API in the spark.ml package. 그래서 나는 Spark.ml 을 이용해서 기지국 혼잡 인지 모델링을 구현했다. Spark.ml은 Pipeline을 지원하므로 모델링 노가다 하기 훨씬 편하다. 어떻게 동작하길래 편한지는 모델 평가에서 설명한다.

Key Spark metrics and behavior patterns

Spark application의 성능에 영향을 미치는 요소(infra 및 metirc)에 대한 깊은 이해가 필요하다. 모니터링에 필요한 것들을 좀 더 구체적으로 알아보자. (아래 내용들이 기본적으로 spark ui에서 제공하는 것들.. 아마도 통합적으로 보여주라는 의미인듯?) 1. Memory관련 이슈가 가장 중요하게 신경써야 할 부분이다. spark application을 개발할때 memory 사용량에 대한 고려가 되어야 하며, 모니터링에서는 각 component에서 cluster간의 GC와 메모리를 추적할 수 있어야 한다. GC가 과하게 발생하면 back pressure를 증가시킬 수 있다. 2. Shffule수행시에 성능 이슈. 가급적 shuffle과 reducing을 줄여서 Node간 데이터 이..