0
스파크 ml 파이프 라인에서 새롭고 보이지 않는 라벨을 처리하기 위해 가장 빈번한 대체 작업을 사용하고 싶습니다. 파이프 라인은 스파크 ml 파이프 라인 핸들 보이지 않는 라벨
- 구성되는 경우 랜덤 포레스트
가정은 (1), (2,3) 및 (4,5) 별도의 배관
- I 맞게 기차 및 테스트 데이터를 변환 한 수를 구성한다. 이 모든 유모 값은 즉 맞는 친절뿐만 아니라 4,5
- 그런 다음 나는
val fittedLabels = pipeline23.stages collect { case a: StringIndexerModel => a } val result = categoricalColumns.zipWithIndex.foldLeft(validationData) { (currentDF, colName) => currentDF .withColumn(colName._1, when(currentDF(colName._1) isin (fittedLabels(colName._2).labels: _*), currentDF(colName._1)) .otherwise(lit(null))) }.drop("replace")
하는 새로운 대체하기 위해 다음과 같은
사용할 수 있습니다
null
- 이 의도적으로 도입 널 (null)와/보이지 않는 라벨은 가장 빈번한으로 전가된다 입력자
그러나이 설정은 매우 추합니다. (단일 파이프 라인을 제공 할 수 없음)
새 값을 null로 처리하는 Transformer를 빌드하려면 파이프 라인의 장착 레이블에 어떻게 액세스합니까?
새로운 값을 처리하는 더 좋은 방법이 있습니까? 가장 빈번한 대체가 괜찮다고 가정합니다. 즉 약 90 개의 열만있는 데이터 세트의 경우 매우 적은 수의 열만 보이지 않는 레이블을 포함합니다.