0
최근에 학생들이 Spark/MLlib/Scala를 사용하여 기계 학습을 배우기 위해 실험실 재료를 준비해야합니다. 나는 기계 학습에 익숙하지만 Spark에 익숙하지 않습니다.Spark/MLlib : 비선형 모델을 훈련하기위한 피쳐 사각형 추가
기계 학습의 "교과서"트릭 중 하나는 비선형 모델을 허용하기 위해 더 높은 차원의 원래 기능을 추가하는 것입니다. 예를 들어, LIBSVM 파일에서 교육 데이터를로드 한 후에 원본 데이터 외에 모든 기능의 제곱을 추가하고 싶습니다.
// Load training data in LIBSVM format.
val data = MLUtils.loadLibSVMFile(sc, "data/mllib/sample_libsvm_data.txt")
val data_add_square = data.map(s => {
val tmp = sc.parallelize(s.features.toArray)
val tmp_sqr = tmp.map(x => x*x)
new LabeledPoint(s.label, Vectors.dense(s.features.toArray ++ tmp_sqr.collect))
})
은 어떻게 든 내가이 구현도 "헤비급"이고 그렇게 할 수있는 올바른 방법으로하지 보이는 느낌 : 내 현재의 제한된 지식은 아래의 구현을 얻을 수 있습니다. 누구든지이 문제에 관해 밝힐 수 있습니까?
감사의 경우에 더 잘 작동해야 더 무거운 조금 무거운 보인다. 네이티브 배열에서'map()'을 호출 할 수 있는지 몰랐다. 고밀도 및 희소 한 벡터를 별도로 처리하는 것도 좋은 생각입니다. – Neo1989