반응형
예제에 사용되는 데이터 파일:
예제 풀이인 ipynb 파일:
예제 2.1
heart 데이터를 읽어낸 후, 수치형 데이터 칼럼 {'age', 'trestbps', 'chol', 'thalach', 'oldpeak'}에 대해서 분포 곡선을 그렸을 때, 평균 주변에서의 곡선 모양이 가장 뾰족한(평균 주변에 가장 데이터가 많은) 칼럼 이름을 적으시오.
df = pd.read_csv('heart.csv')
df
df1 = df[[ 'age', 'trestbps', 'chol', 'thalach', 'oldpeak']]
df1.kurtosis()
예제 2.2
heart 데이터를 읽어낸 후, 수치형 데이터 칼럼 {'age', 'trestbps', 'chol', 'thalach', 'oldpeak'}에 대해서 정규화를 해서 [0,1]까지의 데이터로 변환하고, 변환된 칼럼 중 (평균 - 중앙값)이 가장 큰 칼럼명을 적으시오. 변에 가장 데이터가 많은) 칼럼 이름을 적으시오.
df = pd.read_csv('heart.csv')
df1 = df[[ 'age', 'trestbps', 'chol', 'thalach', 'oldpeak']]
df1.skew()
# 문제에서 주어진 순서대로 정직하게 풀어도 된다.
from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
scaler.fit(df1)
arr = scaler.transform(df1)
df2 = pd.DataFrame(arr, columns=df1.columns)
df2.skew()
답은 oldpeak
# 실제로 평균과 중앙값의 차이를 구해서 답을 구해도 된다.
def diff(s):
return s.mean() - s.median()
dic = {}
for col in df2.columns:
dic[col] = diff(df2[col])
dic
답은 oldpeak
참조로, 그래프를 그려서 실제 skewness를 확인해보자.
원래의 자료를 가지고 분포 곡선을 그려보면, 왜도를 파악하기 힘들다.
import seaborn as sns
sns.histplot(df1['oldpeak'], kde=True, color='red')
sns.histplot(df1['thalach'], kde=True, color='blue')
정규화를 한 데이터에 대해서 그려보면, 왜도의 차이를 알 수 있다.
import seaborn as sns
sns.histplot(df2['oldpeak'], kde=True, color='red')
sns.histplot(df2['thalach'], kde=True, color='blue')
-끝-
다음 글: 2.2 가설 검정
반응형
'Information > 통계강의' 카테고리의 다른 글
2.3 평균에 대한 검정 (0) | 2021.02.17 |
---|---|
2.2 가설 검정 (0) | 2021.02.17 |
2.1 분포 (이론) (0) | 2021.02.14 |
2. 분포 및 가설검정 (0) | 2021.02.14 |
1.3 데이터 스케일링 (예제 풀이) (0) | 2021.02.13 |