Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- GIS
- Join
- 멋쟁이사자처럼
- 알고리즘
- 인턴10
- folium
- 마이온컴퍼니
- BFS
- TiL
- Plotly
- intern10
- likelionlikelion
- 마이온
- 그리디
- parklab
- 멋사
- SQL
- pyhton
- seaborn
- Python
- DP
- 멋쟁이사자처럼멋쟁이사자처럼
- ux·ui디자인
- 시각화
- DFS
- 프로젝트
- 멋재이사자처럼
- GNN
- likelion
- 파이썬
Archives
- Today
- Total
지금은마라톤중
캐글 타이타닉 ( 6 ) 본문
Titanic - 11. Feature engineering - Change string to categorical and Pearson coefficient
이번에는 문자열을 그래도 사용하면 인식의 오류가 있어서 숫자열로 바꿔주는게 좋다. map 과 딕셔너리를 이용하여 숫자의 값으로 표현하여 효율성을 높이는 작업을 했다.
df_train['Initial'] = df_train['Initial'].map({'Master':0, 'Miss':1, 'Mr': 2, 'Mrs': 3, 'Other': 4})
df_test['Initial'] = df_test['Initial'].map({'Master':0, 'Miss':1, 'Mr': 2, 'Mrs': 3, 'Other': 4})
df_train['Embarked']= df_train['Embarked'].map({'C':0, 'Q':1, 'S': 2})
df_test['Embarked']= df_test['Embarked'].map({'C':0, 'Q':1, 'S': 2})
이 외의 Sex도 변경하였다.
* Pearson coefficient
통계학에서, 피어슨 상관 계수란 두 변수 X와 Y간의 선형 상관 관계를 계량화한 수치다.
일반적으로 상관관계는 피어슨 상관관계를 의미하는 상관계수이다.
heatmap_data = df_train[['Survived','Pclass','Sex','Fare','Embarked', 'FamilySize', 'Initial', 'Age_cat']]
#heatmap을 통해 상관관계를 확인할 수 있다.
colormap = plt.cm.RdBu
plt.figure(figsize=(14,12))
plt.title('Pearson Correalation of Features', y=1.05, size = 15)
sns.heatmap(heatmap_data.astype(float).corr(), linewidths = 0.1, vmax =1.2,
square = False, cmap=colormap, linecolor = 'white', annot =True, annot_kws={'size': 16},fmt='.2f')
Titanic - 12. Feature engineering - One-hot encoding on the Initial and Embarked
one-hot encoding
수치화시킨 카테고리 데이터를 그대로 넣어도 되지만, 모델의 성능을 높이기 위해 사용한다.
pandas의 get_dummies를 사용하여 할 수 있다.
카테고리가 100개가 넘어가면 100개가 넘는 컬럼이 생겨 오히려 학습하는데 지장을 준다.
이럴 경우에는 다음시간에 알려준다고 합니다^^
다음시간에는 필요없는 것은 것들을 날려버리는 작업을 진행할 것이다.
df_train = pd.get_dummies(df_train, columns=['Initial'], prefix='Initial')
df_test = pd.get_dummies(df_test, columns=['Initial'], prefix='Initial')
df_train = pd.get_dummies(df_train, columns=['Embarked'], prefix='Embarked')
df_test = pd.get_dummies(df_test, columns=['Embarked'], prefix='Embarked')
df_train.drop(['PassengerId','SibSp', 'Name', 'Parch', 'Ticket', 'Cabin'],axis=1,inplace=True)
df_test.drop(['PassengerId','SibSp', 'Name', 'Parch', 'Ticket', 'Cabin'],axis=1,inplace=True)
df_train.head()를 보면 dummies를 사용하여 각 Initial과 Embarked의 feature가 각각 생긴 것을 볼 수 있고, drop으로 사용하지 않는 것들을 제거하였다.
'Machine Learning > Kaggle' 카테고리의 다른 글
캐글 타이타닉 (5) (0) | 2022.10.27 |
---|---|
캐글 타이타닉 ( 4 ) (2) | 2022.10.09 |
캐글 타이타닉 ( 3 ) (0) | 2022.10.09 |
캐글 타이타닉 ( 2 ) (1) | 2022.10.03 |
캐글 타이타닉 ( 1 ) (1) | 2022.10.03 |
Comments