부족한 값을 사용하여 라이브러리 DataWig 보완


여기 기사를 보고 DataWig이라는 결손치 보충고를 알아내서 해봤어요.
https://zenn.dev/atfujita/articles/84e826f3b8e4f99d24cb
또한 DataWig에 대한 자세한 사양은 공식 문서을 참조하십시오.
코드의 상세한 부분은 할애이기 때문에 GitHub 또는Google Colab 확인하세요.
데이터 세트는 태국 것을 사용한다.
https://raw.githubusercontent.com/mwaskom/seaborn-data/master/raw/titanic.csv

학습 데이터는 80%, 테스트 데이터는 20%를 차지한다.
부족한 값을 포함하는 특징량,age(수치 데이터),cabin(클래스 데이터),embarded(클래스 데이터)에 대해 DataWig을 사용해 보세요.

매개 변수


당분간 결손치의 분포를 고려하지 않고 아래 6개 항목에 따라age,cabin,embarded의 결손치를 보충한다.
또 Epoke 수는 1000이다.
INPUT_COLUMNS = ['name', "sex", "sibsp", "parch", "fare", "survived"]
EPOCH = 1000

embarded의 결손값 보충


FILE_PATH는 학습 무게를 저장하는 경로입니다. 적절하게 설정하십시오.
import datawig

imputer = datawig.SimpleImputer(
    input_columns=INPUT_COLUMNS,
    output_column='embarked',
    output_path = FILE_PATH
)

# 学習
imputer.fit(
    train_df=train,
    num_epochs=EPOCH
)

# 欠損値に相当する項目の予測
predictions = imputer.predict(test)
다음과 같은 느낌imputed、xxx_imputed_프로바 프로젝트를 추가했습니다.
xxx_imputed는 예측의 보완 내용이다.

보시면 아시겠지만 결손이 아닌 항목에 관해서도 보완 내용을 예측했고 어떤 부분도 다른 점이 있습니다.
예측된 보완 내용은 결손된 부분만 사용하는 것이 가장 좋다.
le_xxx、le_xxx_imputed 이 프로젝트는 원시 값과 예측된 상호 보완 내용을 각각 탭으로 인코딩한 프로젝트입니다.
f1_score(temp["le_embarked"], temp["le_embarked_imputed"], average='macro')
예측된 미손실 부분에 대한 보충 내용과 실제 내용에 따라 f1점을 계산하면 약 60%의 비율이 괜찮다.
0.639421620673713

cabin,age의 결손값 처리


분류 데이터든 수치 데이터든 데이터 wig.SimpleImputer()의 처리는 변경되지 않습니다. 사랑을 끊으십시오.

카빈의 F1 득점.


f1_score(temp["le_cabin"], temp["le_cabin_imputed"], average='macro')
embarded와 같은 생각을 바탕으로 Cabin에 대해서도 F1 득점을 계산했지만 정밀도는 3% 정도에 불과했다.
비빈은 원래 거의 손실치였고 독특치도 많아 예측 정밀도가 매우 낮았다.
0.028735632183908042

age의 R2 득점


r2_score(temp["age"], temp["age_imputed"])
age는 수치 데이터로 R2의 득점을 계산한 후 정밀도는 약 25%이다.
0.25760977146668074
이상은 끝까지 읽어주셔서 감사합니다.

좋은 웹페이지 즐겨찾기