Section 1 (2021/3/4 ~ 4/2)
부트캠프를 진행하고 한달이 지났다. 벌써 한달이라니... 아무튼 한달동안 부트캠프를 진행하면서 얻었던 점과 부족한 점 그리고 향후 계획을 중간점검처럼 남기려고 한다.
회고
얻었던 점
1. 파이썬의 익숙함
Naver AI부트캠프에 떨어진 가장 큰 이유는 파이썬의 미숙함이였다. 전혀 알지 못했으며 써본적이 없기에 더욱 아쉬웠다. 하지만 지금의 나를 그때의 나와 파이썬의 활용력을 비교하면 자신있게 말할 수 있을정도로 많이 성장했다. 아직 배울게 많은 만큼 꾸준히 내공을 쌓자.
2. Git hub의 사용 및 레포지토리를 통한 자료 저장
Github을 쓸 수 있는 기회가 있어서 진심으로 감사하다.
3. 블로그 정리하는 습관
블로그정리는 부트캠프를 시작하기 전 스스로 다짐한 계획이였다. 가끔 매일 쓰기가 힘들어 포기하고 싶었지만 정리를 통해서 무엇을 배웠는지 복기할 수 있었으며 기록을 남긴다는 것이 자체가 배워가는데 도움이 많이 된다는것을 뼈저리게 느끼고 있다. 꾸준히 하자.
4. 시각화의 다양한 연습 및 그에 따른스펙트럼 확대
시각화를 목적에 맞게 그리고 효율적이게 쓸 수 있도록 고민을 많이하며 프로젝트를 진행했었다. 그로인해서 이전에 해보지 못했던 디테일한 부분들 (alpha의 활용 - 강조하기, 텍스트 및 background를 통한 정돈 등)을 활용할 수 있었던 값진 시간이였다.
5. 문제정의 및 도메인지식의 중요성
프로젝트 시작시 데이터와 관련된 도메인지식 및 그에 따르는 문제의 정확한 정의가 결과에 미치는 영향이 크다는 것을 또 한번 배웠다.
6. 프로젝트를 통한 동기들의 다양한 관점을 통한 리포팅방식
다양한 배경과 커리어를 가진 동기들이 각기 다른방식으로 데이터를 바라보고 데이터가공 및 시각화와 결과를 도출하는 모든 과정이 다양하다는 것을 직접 느낄 수 있어서 정말 좋았다.
부족한 점
1. 적절한 시각화 방식의 미숙함
시각화방식의 다양성을 인지하고 배웠지만 그것을 "잘"활용하는 것은 별개의 문제다. 시각화와 관련한 예시들을 꾸준히 보면서 아이디어를 얻고 적용해야겠다.
2. 프로젝트 진행시 Work Load 세팅의 미숙함
처음에 결측치 처리에만 급급해서 문제정의를 정확히 숙제하지 못했다. 그로인해서 나중에 결과를 도출하려 할때 어려움이 많았다. 끊임없이 생기는 수정과 시도들, 그로인해서 생기는 비효율적인 면들(데이터가공 <-> 시각화)이 결과의 퀄리티를 많이 저해시켰다. 다음에는 꼭 똑같은 실수는 반복하지 않도록 문제정의와 분석계획을 세우는데 공을 들여야겠다.
3. 코딩 정돈 미숙
2번과 비슷한 멕락이다. 분석계획을 세우지 않았기에 발생한 문제였다. 중구난방식으로 가공하고 시각화를 하느라 코딩을 기록하고 정리하는데 미숙함이 생겼다.
4. 시간과 건강관리
방안에서만 생활을 하다보니 시간개념도 사라지고 운동부족도 생겨 엉덩이가 가벼워지기 시작했으며 집중도 또한 많이 떨어졌다.
향후 계획
간단하다. 일관성을 잃지 않도록 노력하자.
아직 못해본 것, 배우고 싶은 것, 활용하고 싶은 것이 많지만, 평생 공부하고 끊임없이 갈고 닦는다는 생각으로 느리지만 앞으로 나아가려는 사람이 될 것이다.
올해 안에는 무조건 성과를 낼것이다. 어떠한 형태로든...
챌린지 비교분석 및 팁들
Week 1
1. 해상도
# Matplotlib뒤에 붙여 그래프의 해상도를 높이는 역할
import matplotlib.pyplot as plt
%config InlineBackend.figure_format='retina'
2. 테이블 시각화: hide_index()의 쓰임새
table[['geo','PPP']].sort_values('PPP').style.hide_index()
3. %matplotlib inline의 사용
%matplotlib inline을 사용함으로서 뒤에 그려질 모든 시각화자료들이 PNG 이미지형태로 Jupyter Notebook의 내부 브라우저에서 그려진다. 주로 Jupyter Notebook에 쓰임.
Week 2
1. ~를 활용한 조건문
df[ ~(Conditional Statement) ]
자주하는 실수로 괄호()를 넣지 않고 not(~) operator를 쓰는 경우가 많음.
2. Crosstab vs Groupby
- Crosstab
display(pd.crosstab(df['F6'], df['F3'], margins = False))
- Groupby
df.groupby(['F6', 'F3'])['F3'].count().unstack()
- Pivot Table
df.pivot_table(index='F6', columns='F3', aggfunc={'F3':len})
늘 Groupby를 통해서 정보를 얻으려고 할때, unstack()의 기능을 통해서 Crosstab과 같은 정보를 얻어야겠다.
Week 3
1. ColumnTransformer()를 활용한 데이터프레임의 정규화
# StandardScaler를 활용한 정규화
from sklearn.preprocessing import StandardScaler
sc = StandardScaler()
x_scaled = sc.fit_transform(df[['F4','F5','F7']])
df_temp = pd.DataFrame(x_scaled, columns=['F4','F5','F7'], index = df.index)
# -------------------------------------------------------------------------------#
# ColumnTransformer()를 활용한 정규화
from sklearn.preprocessing import StandardScaler
from sklearn.compose import ColumnTransformer
ct = ColumnTransformer([
("transformer", StandardScaler(), scaled_cols)
], remainder='passthrough')
df[scaled_cols] = ct.fit_transform(df[scaled_cols])
ColumnTransformer로 데이터프레임안에 직접적으로 넣을 수 있다는 장점이 있음.
Reference: stackoverflow.com/questions/38420847/apply-standardscaler-to-parts-of-a-data-set
Apply StandardScaler to parts of a data set
I want to use sklearn's StandardScaler. Is it possible to apply it to some feature columns but not others? For instance, say my data is: data = pd.DataFrame({'Name' : [3, 4,6], 'Age' : [18, 92,98...
stackoverflow.com
2. kmeans.labels_를 활용한 시각화 준비
kmeans = km.fit(points[['x','y']])
points['cluster_id'] = kmeans.labels_
# Scatter Plot
sns.scatterplot(x = 'x', y = 'y', data = points, hue='cluster_id', palette='RdYlBu_r')
따로 encoding을 할 필요없이 직접적으로 Label을 넣을 수 있는 장점이 있다.
정리 및 레퍼런스
Week 1
1.1 EDA
Week 2
2.1~2 Hypothesis Test
2.4 Bayesian
Week 3
3.1 Vector/Matrix
3.2 Linear Algebra
3.3 Dimension Reduction
3.4 Clustering
Project
github.com/xper100/AIBootCamp-Project/blob/main/Section_1_Project.ipynb
xper100/AIBootCamp-Project
AIBootCamp-Project. Contribute to xper100/AIBootCamp-Project development by creating an account on GitHub.
github.com
'[코드스테이츠] AI부트캠프2기 > Section 1' 카테고리의 다른 글
[AI부트캠프 2기] - 13일차 (feat. 코드스테이츠) (0) | 2021.03.22 |
---|---|
[AI부트캠프 2기] - 12일차 (feat. 코드스테이츠) (0) | 2021.03.21 |
[AI부트캠프 2기] - 11일차 (feat. 코드스테이츠) (0) | 2021.03.18 |
[AI부트캠프 2기] - 10일차 (feat. 코드스테이츠) (0) | 2021.03.17 |
[AI부트캠프 2기] - 9일차 (feat. 코드스테이츠) (0) | 2021.03.17 |
댓글