KT 에이블스쿨 52일차(1)

박기범·2023년 4월 13일
0

에이블스쿨

목록 보기
58/95
post-custom-banner

오늘은 미니프로젝트5 4일차로 어제 주제를 가지고 모델링을 진행했습니다.



실습 내용

어제는 컬럼 분석과 컬럼 중요도를 알아보는 시각화에 중점을 두었고 오늘은 모델링을 진행했습니다.



실습 코드

데이터를 불러오는거와 기타 전처리는 어제와 같아서 생략하겠습니다.

오늘의 모델링에 있어서 목표는 다중 레이블 분류를 수행하는 모델링이였습니다. 다중 레이블 분류란 먼저 큰 틀로 분류를하고 해당 분류한 예측값을 한번더 세밀하게 분류하는 모델을 만드는 것입니다.

예시 코드는 아래와 같습니다.

    # 1-1(정적) 예측값을 가지고 정적인 행동 3가지 분류를 위한 데이터 생성
    y1_pred_static = model1.predict(X_test)  # 1-1(정적) 예측값
    X_static = X_test[y1_pred_static == 1]   # 1-1(정적)으로 예측된 데이터
    y1_pred_static_3class = model1_1.predict(X_static)  # 정적인 행동 3가지 예측값

    # 1-2(동적) 예측값을 가지고 정적인 행동 3가지 분류를 위한 데이터 생성
    y1_pred_dynamic = model1.predict(X_test)  # 1-2(동적) 예측값
    X_dynamic = X_test[y1_pred_dynamic == 0]   # 1-2(동적)으로 예측된 데이터
    y1_pred_dynamic_3class = model1_2.predict(X_dynamic)  # 정적인 행동 3가지 예측값

    # 1-1, 1-2 예측 결과를 합쳐서 최종 다중 레이블 예측값 생성
    y_pred_combined = []
    for pred_static, pred_dynamic in zip(y1_pred_static_3class, y1_pred_dynamic_3class):
        if y1_pred_static == 1:
            y_pred_combined.append(pred_static)
        else:
            y_pred_combined.append(pred_dynamic)

    # 실제 레이블 데이터
    y_true = y1  # y1은 정적인 행동을 나타내는 레이블

    report = classification_report(y_true, y_pred_combined)
    print("다중 레이블 분류 성능 평가:")
    print(report)

다중 레이블 분류는 처음 진행했는데 워낙 데이터가 좋아서 더 좋아지는 성능을 볼 순 없었지만 이런식으로 모델링을 진행한다면 성능이 더 좋아진다는 것을 기대할 수 있다고 합니다.







머신러닝의 방법은 정말 많다고 느낀 하루였습니다.




※공부하고 있어 다소 틀린점이 있을 수 있습니다. 언제든지 말해주시면 수정하도록 하겠습니다.
※용어에 대해 조금 공부 더 해서 수정하겠습니다.

profile
개발자가 되기 위한 한걸음
post-custom-banner

0개의 댓글