2017-10-22 4 views
1

156000 행 37 열의 큰 데이터 세트가 있습니다. 열은 보험 속성을 나타냅니다. 우리는 세 가지 유형으로 속성을 나눌 수 있습니다 : 숫자, 범주 및 영숫자. 이 속성은 신경망의 입력 값이지만 NNT는 숫자 데이터 만 허용합니다. 나는 범주 적 및 영숫자 값을 인코딩해야합니다. 몇 가지 다른 값을 포함하는 범주 속성의 경우 한 열적 방법을 사용합니다. 범주에 대해 하나의 열을 사용하고 열에 해당 열의 범주가 포함되어있는 경우 각 셀에 1 또는 0을 사용합니다.큰 데이터 세트가있는 범주 형 데이터

대신, 다음 명령을 사용, 너무 많은 컬럼의 수를 증가하지 않도록, 많은 다른 값을 포함하는 범주 속성 :

df["ATT1"] = df["ATT1"].astype('category') 
df["ATT2"] = df["ATT2"].astype('category') 
df["ATT1"] = df["ATT1"].cat.codes 
df["ATT2"] = df["ATT2"].cat.codes 

카테고리의 속성에 객체의 속성을 변환하고 각 범주에 대한 나는 정수 값을 연관시킨다. TensorFlow로 모델을 시작할 때 각 반복마다 함수 손실이 0으로 유지되고 정확도는 1로 일정합니다.

나는 범주 형 속성을 인코딩하는 것이 잘못 되었기 때문에 이것이라고 생각합니다. 모델은 올바른 방식으로 구축되었으므로 손실 함수, 정확도 및 출력이 올바른지 다른 데이터베이스를 사용하여 모델링합니다. 다른 값을 많이 포함하는 범주 형 데이터의 인코딩 방법이 있습니까?

+0

@ jigasse : 삽입 방법을 시도해 볼 수 있습니다. 당신은 TF에서 wide-n-deep 방법을 볼 수 있습니다. – Beta

답변

0

범주 별 기능 지원이있는 작업 그라데이션 부스트의 경우 잘 작동 할 수 있습니다. CatBoost를 확인하십시오. https://catboost.yandex 사전 처리 단계로 one-hot 인코딩을 사용하지 않으면 교육의 정확성과 속도에 모두 영향을 미칩니다.

관련 문제