매우 큰 데이터베이스 (여기서는 Vertica에서 SQL 및로 ) 에서 가져온 데이터 에서 기계 학습 모델 (내 경우에는 Python pandas
및 sklearn
패키지 사용) 을 작성하는 워크 플로우를 작성 중이며 pyodbc
해당 프로세스의 중요한 단계는 누락 누락을 포함합니다. 예측 변수의 값. 이것은 단일 분석 또는 통계 플랫폼 (Python, R, Stata 등) 내에서 간단하지만 다중 플랫폼 워크 플로우 에서이 단계를 찾는 가장 좋은 곳이 궁금합니다.
파이썬을 sklearn.preprocessing.Imputer
사용하여 클래스를 사용하거나 pandas.DataFrame.fillna
메소드를 사용하거나 손으로 사용하는 것은 간단합니다 (사용 된 대치 방법의 복잡성에 따라 다름). 그러나 수억 개의 레코드에서 수십 또는 수백 개의 열에 이것을 사용하기 때문에 미리 SQL을 통해 직접 수행하는보다 효율적인 방법이 있는지 궁금합니다. Vertica와 같은 분산 플랫폼에서이 작업을 수행 할 때의 잠재적 효율성 외에도 "완벽한"버전의 테이블을 구축하기위한 자동화 된 파이프 라인을 만들 수 있다는 이점이 있으므로 새로운 세트를 작성할 필요가 없습니다. 모델을 실행할 때마다 처음부터 누락 된 값
나는 이것에 대해 많은 지침을 찾을 수 없었지만 우리가 할 수 있다고 상상합니다.
- 불완전한 각 열에 대한 대체 값 테이블 (예 : 전체 / 그룹 별 평균 / 중앙 / 모드)을 만듭니다.
- 대체 값 테이블을 원래 테이블과 결합하여 각 행과 불완전한 열에 대체 값을 지정하십시오.
- 가능한 경우 원래 값을 취하고 그렇지 않으면 대체 값을 취하기 위해 일련의 사례 설명을 사용하십시오.
이것이 Vertica / SQL에서 합리적인 일입니까, 아니면 파이썬에서 대신 처리하고 처리하지 않는 좋은 이유가 있습니까? 그리고 후자라면 sklearn보다는 팬더 에서이 작업을 수행하는 강력한 사례가 있습니까? 감사!