[활동1] 성별 예측 인공지능 개발하기
1. 성별 예측 프로그램 데이터 분석하기 |
|||
1. 프로그래밍에 필요한 라이브러리를 불러옵니다.
|
|||
2. 사용할 데이터셋을 읽어옵니다.
- 해당 데이터셋은 원 데이터셋과 비교하여 데이터 편향성 문제를 논의하기 위해 임의로 여성 데이터의 약 90%를 삭제하였습니다.
|
|||
3. 데이터셋을 보여줍니다.
|
|||
4. 열 이름을 확인합니다.
|
|||
5. 데이터셋의 정보를 확인합니다. - Non-Null Count를 통해 결측치의 유무를 확인할 수 있습니다. 여기서는 NULL인 값이 없으므로 결측치 처리를 하지 않아도 됩니다. - Dtype을 통해 데이터 타입을 확인할 수 있습니다. |
|||
6. 데이터셋에서 수치형 데이터로 이루어진 열들의 통계를 확인합니다. - count: 컬럼별 총 데이터수 - mean / std: 컬럼별 데이터의 평균 / 표준편차 - min / max: 컬럼별 데이터의 최솟값 / 최댓값 - 25% / 50% / 75% : 백분위의 각 지점의 값 |
|||
7. 각 클래스에 속한 데이터 수를 확인합니다. - gender=1이면 남성, 0이면 여성으로, 남성 데이터 2500개, 여성 데이터 251개로 데이터 편향성이 나타납니다. - 원 데이터셋에서 여성 데이터는 2501개로 이와 비교하여 데이터 편향성 문제를 논의하기 위해 임의로 여성 데이터의 약 90%를 삭제하였습니다. |
2. 성별 예측 프로그램 데이터 시각화하기 |
|||
1. 성별에 따른 데이터 수를 막대 그래프로 시각화합니다. 데이터 편향성이 나타나는지 확인합니다.
|
|||
2. 각 요소들의 상관관계를 히트맵으로 나타냅니다.
히트맵으로 표현했을 때, 상관계수의 절댓값이 1에 가까울수록 상관관계가 높게 나타납니다. - annot=True: 각 셀에 값 표기 여부 - linewidths: 셀 사이 선 두께 - cmap: 히트맵의 색 |
|||
3. 변수 간 관계를 산점도(pair plot)으로 나타냅니다.
- hue(gender)를 기준으로 그룹화하여 색을 다르게 표현합니다. |
3. 인공지능 모델 학습시키기 |
1. 데이터셋을 예측해야 할 종속변수(성별)만 있는 데이터와, 성별을 제외한 나머지 데이터가 모두 남아있는 데이터, 두 부분으로 나눕니다.
- 인공지능 모델을 학습시키기에 앞서, 데이터셋을 두개로 나눕니다. - 독립변수 X에는 gender 열을 삭제한 나머지 열들을 저장합니다. - 종속변수 Y에는 gender 열을 저장합니다. - X와 Y를 확인합니다. |
2. 데이터 셋을 훈련 데이터와 테스트 데이터로 분할합니다.
test_size=0.30: 이때 30%의 데이터가 테스트에 사용되고, 70%가 훈련에 사용됩니다.
|
3. 랜덤 포레스트 분류 모델을 활용하여 학습시킵니다. - 랜덤 포레스트의 개념: 여러 개의 의사결정트리를 만들고 그 결과를 결합함으로써 보다 정확하고 안정적인 예측을 제공하는 머신 러닝 알고리즘
- scikit-learn 라이브러리에서 RandomForestClassifier를 호출합니다. fit 메서드를 사용하여 랜덤 포레스트 분류 모델을 훈련시킵니다.
|
4. 테스트 데이터로 성별을 예측합니다.
|
4. 모델 성능 평가하기 |
1. 인공지능 모델의 예측 정확도를 확인합니다.
- 정확도는 전체 표본 중 정확히 분류된 표본의 수를 의미합니다.
|
2. 오차 행렬과 평가 지표를 통해 모델의 성능을 평가합니다.
- 오차 행렬이란 학습된 분류 모델이 예측을 수행하면서 얼마나 헷갈리는지에 대해 보여주는 지표입니다.
1) TN: 예측값을 Negative 값인 0으로 예측하고, 실젯값 또한 Negative 값인 0으로 정답을 맞힌 경우 2) FP: 예측값을 Positive 값인 1으로 예측했는데 실젯값은 Negative 값인 0으로 틀린 경우 3) FN: 예측값을 Negative 값인 0으로 예측했는데 실젯값은 Positive 값인 1로 틀린 경우 4) TP: 예측값을 Positive 값인 1으로 예측하고, 실젯값 또한 Positive 값인 1로 정답을 맞힌 경우 - 오차 행렬을 활용한 평가지표에는 정확도, 정밀도, 재현율, F1점수가 있습니다. 모두 값이 클수록 좋습니다.
- 분류 평가지표는 예측한 결과와 실제 결과를 비교하여 각 클래스별로 정밀도, 재현율, F1점수 등의 지표를 계산합니다. - support: 실제 샘플 개수 - macro avg: 단순 평균 - weighted avg: 표본 개수로 가중 평균을 내서 계산하는 방법 |