실험 내용
▶Spark MLlib의 Linear Regression 알고리즘을 이용하여 최적의 모델 생성 ▶이를, 이용하여 결과 예측 ▶MLlib 보다 Ml 사용을 권장하는 것 같지만 데이터가 많을 경우 빠르게 처리하기 위해 MLlib 사용 |
[ 변수 수에 따른 간략 예시 ]
※ 샘플 데이터
5,1 1 2 1 10,2 2 4 2 15,3 4 6 3 21,4 4 8 4 25,5 5 10 5 30,6 6 12 6 35,7 7 14 7 40,8 8 16 8 45,9 9 18 9 50,10 10 20 10 56,11 13 22 11 59,12 12 24 12 |
※데이터 설명
▶ 결과 Label, 특성 Features ▶ 테스트라는 점을 감안하여 예로, ▶ 데이터 값의 합이 일정한 비율로 증가 되도록 작성하였다. ▶ 다른 데이터들도 동일함
|
※Source
■ 데이터 양이 적어 1000번( int numIterations = 1000 ) 반복
■ StepSize를 0.1, 0.01, 0.001로 3회 실행하여
■ 최소값인 Mean Squared Error 확인
■ 이는 실제 데이터와 얼마나 차이 나는가? 뜻임
SparkConf sconf = new SparkConf().setMaster("local[2]").setAppName("odinDataServer").set("spark.ui.port", "4048"); String path = "/home/ksu/sample_data/abc.txt"; JavaRDD<String> data = sc.textFile(path); JavaRDD<LabeledPoint> parsedData = data.map(
final LinearRegressionModel model = System.out.println("training Mean Squared Error = " + MSE);
|
※결과
0.1 StepSize 모델 => training Mean Squared Error = 2.721774988774932E149 0.01 StepSize 모델 => training Mean Squared Error = 0.22500840207926065 (가장 좋음) 0.001 StepSize 모델 => training Mean Squared Error = 0.6558090339038074
|
● 생성된 모델로 예측을 진행하면
▶ System.out.println( model.predict( Vectors.dense( new double[]{20,20,20,40} ) ) ); ▶ 생성한 모델에 위의 값을 넣으면 얼마가 될까? ▶ 콘솔 내용 : 99.43031001646277 ▶100에서 쬐끔 차이남
|
'데이터 분석' 카테고리의 다른 글
Spark - Random Forest Regression (0) | 2017.05.24 |
---|---|
Spark - Random Forest Classification (3) | 2017.05.23 |
MSE, RMSE (0) | 2017.05.19 |
Spark - Naive Bayes (단어를 이용한 문서 구별) (0) | 2017.05.12 |
mahout - 설치 및 User 기준 추천 (0) | 2017.05.11 |