제로베이스 데이터 취업 스쿨 3주차 스터디노트 1호
학습에 들어가기 앞서,
대략적인 학습 내용을 프리뷰하고 들어가고자 한다.
왜 EDA를 하는데?
EDA는 Exploratory Data Analysis,
탐색적 데이터 분석의 약자이다.
왜 데이터 사이언티스트들은 데이터 분석에서 주로 직무를 변경할까?
데이터 분석가와 AI 개발자는 직무를 확인해보면 무척 다르다.
데이터 분석가는 말 그대로 수집된 데이터를 분석하여
특징을 파악하고, 시각화를 해서 해당 정보가 필요한 사람들과 커뮤니케이션한다.
하지만, AI 개발자는 모델을 생성하고, 학습시키며,
학습결과에 따라 개선한다.
딥러닝은 작동 방식에 어떤 치밀한 논리가 있는 것이 아니다.
확률과 가중치에 따라 어떤 선택을 하는 퍼셉트론을 잔뜩 모아둔 것이다.
그 말인 즉슨, input 데이터가 오염되었을 경우 신경망은 이에 대처할 수 있는 방법이 없다.
뭐 소수의 데이터가 오염되었다면 물량으로 정화(?) 되겠지만,
대부분의 데이터가 오염되었거나, 일부 데이터가 일률적인 방식으로 오염되었다면
아무리 화려한 모델과 논문을 활용하더라도 결과는 오염될 수밖에 없다.
그러니 input이 중요하고, input할 빅데이터의 분석이 중요해지는 것이다.
Pandas
- python판 엑셀
- 데이터셋은 제공되는 경우도 있다. (대표적으로 캐글이 있음)
- 따라서, AI 진입의 제일 기본은 데이터를 파이썬으로 조작하는 것이다.
- 베리에이션이 다양한 데이터를 필요한 부분만 추출할 수 있다.
Matplotlib & Seaborn
- 시각화 도구
- 1,000개의 나무를 본다고 해서 산의 형태를 알수는 없다.
- pandas 데이터 프레임 활용은 Seaborn이 더 편하다.
- 어쨌거나 Seaborn도 Matplotlib 기반 패키지이다.
- 뭐든 쓰기 편하게 만들어둔 것은 기능이 제한된다.
BeautifulSoap & Selenium
- 웹페이지 데이터 추출 자동화 (혹은 스크래핑)
- 직접 데이터를 수집하고자 할 때 사용한다.
- Selenium은 동적 웹페이지에 사용하는 것으로 알고 있다.
- 즉, 스크롤을 내리면 페이지가 확장된다거나...
어떤 버튼을 눌러야 데이터가 보이는 경우에 활용
- 정적 웹페이지면 BeautifulSoap으로 충분할 듯
Numpy
- 선형...대수...인가 뭔가
- AI는 행렬과 뭔가가 있다. 그리고 Numpy는 행렬을 쉽게 조작하게 해준다.
- Tensorflow와 Numpy는 뗄레야 뗄 수 없는 듯.
- EDA 과정에서 어떻게 활용할지는 추측이 잘 안된다.
- 수많은 데이터의 수치를 퍼센티지화 한다거나, 순위를 메긴다거나 하는 식으로 쓸 듯.
자연어처리
- 자연어처리한 경험이 있다.
- 자연어처리는 문장을 토큰화하고, 개별 토큰마다 가중치를 두는 식이다.
- 감정분석까지만 해봤는데, chatGPT를 보면 참... 어떻게 굴러가는지
- KoNLPy를 쓰는 듯 하다. 패키지를 심도있게 공부할 필요는 없다. 시간이 지나면 바뀌기 마련이니.
컴퓨터 비전은 없음.
- 컴퓨터 비전도 전처리가 필요할텐데...
- 사실 컴퓨터 비전은 EDA 하기가 애매한 듯.
- 100,000개의 얼굴 사진이 있는데 이걸로 뭘 탐색할건데?
- 생기는 의문: 그럼 10,000,000개의 얼굴 사진이 있는데 실수로 고양이 사진을 넣었다면... 고양이 사진이 있는지 어떻게 아는지? 어떻게 제외할 것인지?