모바일은 화면을 돌려 가로화면으로 보시는 게 읽으시기 편할 수 있습니다. 돌려서 보시는 걸 추천드릴게요!!
🩸 저번 글에서는 유일하게 classify 되지 않은 혈압 attribute의 범위를 알아보고 이를 전처리하는 내용을 다루었습니다. 이번 글에서는 나머지 classify 된 attribute 중에서 noise 가 있는지 확인해 볼 것입니다.
🩸 원본 데이터 70000개의 object 중에서 Systolic / Diastolic Blood Presure Preprocessing 의 결과 남은 object가 64500개였습니다. 따라서 각 attribute의 class들의 개수를 합치면 각각 64500 이 나오는지 확인하는 방법으로 noisy data를 판단할 것입니다.
🩸 사실, 상당히 단순한 방법이라고 생각합니다. 각 attribute 가 가지는 값을 확인하는 .unique( ) 함수를 사용해서 이를 쉽게 알 수도 있지만, 프로젝트의 코드만으로도 진행방향을 설명하기 위해 이러한 방식을 사용하였습니다. 동시에 각 attribute의 class의 분포를 알 수 있다는 장점 또한 있다고 생각하였습니다😀😀.
Binary
🫀 1. Label (cardio) -
print('cardiovascular : ', len(cardio[cardio['cardio']==1]))
print('Non-cardiovascular : ', len(cardio[cardio['cardio']==0]))
print('Cardio summation : ', len(cardio[cardio['cardio']==1]) + len(cardio[cardio['cardio']==0]))
>>
cardiovascular : 32146
Non-cardiovascular : 32354
Cardio summation : 64500
🩸 각 case의 경우의 데이터수의 합이 총 데이터수와 동일하므로 noisy data는 없습니다.
🩸 또한, 우리가 예측하고자 하는 target 들의 분포가 거의 1:1 에 가깝다는 것을 확인 할 수 있었습니다.
🫀 2. Cholesterol - Ordinal
print('normal-cholesterol : ', len(cardio[cardio['cholesterol']==1]))
print('above normal-cholesterol : ', len(cardio[cardio['cholesterol']==2]))
print('well above normal-cholesterol : ', len(cardio[cardio['cholesterol']==3]))
print('Cholesterol summation : ', len(cardio[cardio['cholesterol']==1]) +
len(cardio[cardio['cholesterol']==2]) +
len(cardio[cardio['cholesterol']==3]))
>>
normal-cholesterol : 48461
above normal-cholesterol : 8583
well above normal-cholesterol : 7456
Cholesterol summation : 64500
🩸 각 case의 경우의 데이터수의 합이 총 데이터수와 동일하므로 noisy data가 없습니다.
Ordinal
🫀 3. Glucose -
print('normal-Glucose : ', len(cardio[cardio['gluc']==1]))
print('above normal-Glucose : ', len(cardio[cardio['gluc']==2]))
print('well above normal-Glucose : ', len(cardio[cardio['gluc']==3]))
print('Glucose summation : ', len(cardio[cardio['gluc']==1]) +
len(cardio[cardio['gluc']==2]) +
len(cardio[cardio['gluc']==3]))
>>
normal-Glucose : 54886
above normal-Glucose : 4673
well above normal-Glucose : 4941
Glucose summation : 64500
🩸 각 case의 경우의 데이터수의 합이 총 데이터수와 동일하므로 noisy data가 없습니다.
Binary
🫀 4. Smoke / Non-smoke -
print('Smoke : ', len(cardio[cardio['smoke']==1]))
print('Non-smoke : ', len(cardio[cardio['smoke']==0]))
print('Smoke summation : ', len(cardio[cardio['smoke']==1]) + len(cardio[cardio['smoke']==0]))
>>
Smoke : 5651
Non-smoke : 58849
Smoke summation : 64500
🩸 각 case의 경우의 데이터수의 합이 총 데이터수와 동일하므로 noisy data가 없습니다.
Binary
🫀 5. Alcohol / Non-Alcohol -
print('alcohol : ', len(cardio[cardio['alco']==1]))
print('Non-alcohol : ', len(cardio[cardio['alco']==0]))
print('Alcohol summation : ', len(cardio[cardio['alco']==1]) + len(cardio[cardio['alco']==0]))
>>
alcohol : 3422
Non-alcohol : 61078
Alcohol summation : 64500
🩸 각 case의 경우의 데이터수의 합이 총 데이터수와 동일하므로 noisy data가 없습니다.
Binary
🫀 6. Active -
print('Active : ', len(cardio[cardio['active']==1]))
print('Non-Active : ', len(cardio[cardio['active']==0]))
print('Active summation : ', len(cardio[cardio['active']==1]) + len(cardio[cardio['active']==0]))
>>
Active : 51825
Non-Active : 12675
Active summation : 64500
🩸 각 case의 경우의 데이터수의 합이 총 데이터수와 동일하므로 noisy data가 없습니다.
각 attribute가 noise 없이 깔끔하게 정리된 걸 확인할 수 있었습니다. 최종적으로 사용할 데이터와 info를 확인하는 것으로 데이터 전처리 과정을 정리하도록 하겠습니다😊😊.
cardio
cardio.info()
>>
<class 'pandas.core.frame.DataFrame'>
Int64Index: 64500 entries, 0 to 69999
Data columns (total 11 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 age 64500 non-null int64
1 gender 64500 non-null int64
2 ap_hi 64500 non-null int64
3 ap_lo 64500 non-null int64
4 cholesterol 64500 non-null int64
5 gluc 64500 non-null int64
6 smoke 64500 non-null int64
7 alco 64500 non-null int64
8 active 64500 non-null int64
9 cardio 64500 non-null int64
10 BMI 64500 non-null float64
dtypes: float64(1), int64(10)
memory usage: 5.9 MB
'🐍 파이썬 데이터 분석 프로젝트 > 🫀 심혈관질환 데이터 분석' 카테고리의 다른 글
🫀 심혈관질환 데이터 분석 06. 패턴분석 데이터 전처리 (0) | 2023.01.31 |
---|---|
🫀 심혈관질환 데이터 분석 05. 상관관계 분석 (0) | 2023.01.31 |
🫀 심혈관질환 데이터 분석 03. 데이터 전처리 (0) | 2023.01.29 |
🫀 심혈관질환 데이터 분석 02. 데이터 소개 (0) | 2023.01.29 |
🫀 심혈관질환 데이터 분석 01. readme (0) | 2023.01.29 |