StringIndexer와 IndexToString (vectorassembler)
482
작성한 질문수 2
스파크 환경에서 모델링 단계(VectorAssembler부터 이해가 안되어서 일단 쭉 듣고 있습니다.) 대한 개념이 모호해서 쭉 몇회씩 돌린다는 느낌으로 듣는 중인데요,
[인코딩 개요 및 레이블 인코딩 실습]의 8:00 ~ 8:45 구간에서
(StringIndexer는 fit이 있지만)
"IndexToString 는 fit 없이 transform만 있다. VectorAssembler와 같이 transform만 있다."
라는 식으로 말씀을 주셨는데 이 transform만 가능하다는 점이 모호해서 질문드립니다.
fit을 해줘야 하는 경우(StringIndexer)와 transform만 해줘도 되는 경우(IndexToString)를 바로 구분할 수 있을 만한 포인트(차이점)가 있을지 궁금합니다. 이런 경우들을 일일히 다 외워줘야 하는걸까요, 아니면 어떤 규칙성 같은 게 있을까요?
답변 1
1
안녕하십니까,
스파크 머신러닝의 fit()과 transform()은 초기 버전에서 개선하면서 점차 사이킷런 API와 유사하게 만들려고 한것 같은데, 여전히 초기 버전과 혼합되어 있는 부분들이 있습니다.
어쩠든, 보통 Lable encoding을 할때는 fit()을 해서 코드값이 몇개가 있는지, 어떻게 만들어야 하는지를 먼저 결정해주는 것이 필요합니다. 왜냐하면 일반적으로 학습 데이터로 fit()한 모델을 이용해서 테스트 데이터를 transform() 해주는 것을 적용하는 것이 encoding입니다.
좀 더 복잡한 애기일 수 있지만, 학습 데이터를 label encoding 하기 위해서는 학습 데이터로 fit()하고 학습 데이터를 transform() 하면 됩니다. 하지만 테스트 데이터는 테스트 데이터로 fit() 하지 않고 학습 데이터로 fit()한 모델을 이용해서 transform() 해야 합니다. 그래야 학습 데이터 A, B, C가 0, 1, 2 로 변환되었다고 한다면 테스트 데이터도 A, B, C 가 0, 1, 2 로 변환이 됩니다. 때문에 인코딩 시에는 fit()과 transform()을 적용합니다.
그런데 인코딩 된 값을 다시 원본 값으로 만들때는 이런 부분을 고려할 필요가 거의 없기 때문에 transform()만 적용하는 것 같습니다.
결론적으로 말씀 드리자면, 이런 백그라운드 요건 사항을 이해하는 것도 필요하지만, 이걸 바로 구분할 수 있는 포인트로 간주하기는 어렵습니다. 어느정도 외우는 것이 생산성에 좀 더 도움이 될 수 있습니다.
감사합니다.
강사님 안녕하세요 ㅎdatabricks환경에 대한 설
0
22
3
데이터 브릭스 이슈
0
91
2
데이터 브릭스 가입
0
83
2
pyspark local 설치
0
82
2
community edition 가입 문의
0
93
2
데이터 로드 및 로딩 된 파일 데이터 목록 조회 방
0
159
2
클러스터 버전 설정
0
122
3
instacart market basket analysis
0
169
3
spark 추가 학습 관련 질문
0
223
2
MLOps 관련 MLFLow 및 Databricks 모델 서빙
0
378
1
train파일 업로드 중에 해당 경로가 없다고 뜹니다
0
366
2
강의가 재생되지 않음
0
257
2
후속 강의 계획 질문드립니다.
0
364
1
spark_xgboost_lightgbm 강의부분 관련
0
463
1
spark환경에서 데이터 수정에 관하여 질문이 있습니다.
1
313
1
Spark를 이용하여 binary file -> parquet, csv 변환 가능여부
0
561
1
SPARK 2 강의 오픈
0
490
1
Spark ML 모델 서빙
0
559
1
mac os ) zip 파일 dataframe 오류
0
661
1
ModuleNotFoundError : No module named 'mmlspark' - 20230218
0
618
1
TrainValidationSplit과 randomSplit 사용 질문
0
393
1
현업에서는 scala-spark를 사용하나요? py-spark를 사용하나요?
0
510
1
cluster 생성 Database runtime version 질문
0
268
1
Pandas vs Spark: 비용, 처리시간 비교
0
1227
1





