https://www.boostcourse.org/ds001/joinLectures/70393
네이버 부스트코스 강의 'Hello, 데이터 사이언스!'를 수강하고 내용을 정리했다
데이터 사이언스란?
도메인 지식, 수학(통계), 컴퓨터 과학의 교집합
도메인 지식은 특정한 전문화된 학문이나 분야의 지식으로 경험을 통해 쌓이게 된다.
데이터 분석에 필요한 역량
1. 비판적 사고.
정보를 비판적으로 받아들이는 사고 방식을 연습해야함. 자신의 주장을 데이터로 뒷받침하기 위해서도 필요한 훈련.
과학적 절차에서는 가정들이 굉장히 많이 이루어지는데 먼저 한 가정이 잘못되면 전부 잘못된다. 그래서 석박사들 중 몇년동안 훈련하는 사람들도 있고 논문 읽기도 사실상 헛점찾기다. 이 논문의 한계는 뭐고, 일반화할때는 어디까지 일반화할 수 있는지.
2. 숫자 기반의 사고
직관에 의해 판단하기 보다는 숫자를 확인하는 사고 방식을 연습. 하지만 훈련된 직관은 새로운 통찰력을 제공하므로 균형이 필요.
데이터 분석에 필요한 윤리
1. 개인 정보 이슈
우리나라의 개인 정보 보호법은 강력한 편. 각 회사에서 보안과 함께 절차를 만들고 관리하고 있음. 개인정보 접근 오남용이 없도록 주의할 필요 있음.
데이터 분석가는 회사에서 개인정보 보호를 위해 마련한 절차들을 귀찮다고 생각하지 말고 그게 오히려 데이터를 분석하는 사람들을 보호하기 위한 것이라고 생각하면 좋음.
2. 크롤링 등 법적 이슈
데이터 확보를 위한 크롤링은 저작권 침해와 업무방해죄 침해 소지가 있음. 가장 좋은 것은 정보를 제공하는 api를 이용하는 것. 법적인 의무는 없지만 robot.txt(이 페이지는 크롤링 하지 마라는 것을 작성한 문서)를 확인하는 게 좋음.
크롤링 한 요청 당 사용자가 한명 들어온 것과 비슷한 효과가 나타남. 100명 정도가 이용하던 사이트를 크롤링하면 수천 수만명이 달려들어서 이용하는 것과 같은 효과가 발생함. 그렇게 되면 서버비용 등 여러 업무상의 이슈가 발생함.
데이터 사이언스에 관련된 전공은 어떤게 있나?
확실히 도움이 되는 전공
- 컴퓨터 공학
- 소프트웨어 공학
- 산업 및 시스템 공학
- 수학
- 통계학
굳이 대학원을 간다면
- AI 대학원
- Big Data MBA
- 통계학 석/박사
- 해외 온라인 석사(조지아텍, 미시건, UIUC 등). 다른 석사도 그렇지만 해외 온라인 석사는 특히나 들어가기는 쉽지만 졸업하기가 매우 어렵다
실력만 있다면 학위는 필요하지 않다. 내 실력을 객관적으로 증명할 수 없으니 학위로 대신한다는 느낌. 실력만 있다면 석사는 필요하지 않고 요즘은 돈을 내지 않아도 학습할 수 있는 오픈소스 학습 컨텐츠가 굉장히 많다.
비전공자는 어떻게 해야하나?
1. 프로젝트로 시작해보자
본인의 본래 전공분야를 살려서 프로젝트 단위로 데이터 사이언스를 적용한 데이터 분석이나 개발을 하면서 경험을 쌓고, 프로젝트를 하고나면 본인이 무엇이 부족한지 깨닫게 되는데 부족한 관련 지식들을 하나씩 하나씩 채워나가라.
데이터 사이언스 공부할 때 프로젝트(공모전, 데이터 사이언스 대회 등), 캐글이라는 데이터 분석 플랫폼에 올라와 있는 데이터를 가지고 실습을 해볼 수도 있음.
2. 함께 공부하라
전공자도 혼자서 공부하기 쉽지 않다. 학교 친구들, 회사 동료들, 커뮤니티와 함께 공부해야 서로 시너지도 나고 동기부여도 된다.
어떤 과목을 학습해야 하나?
- R이나 파이썬 같은 분석 도구
- 분석한 결과물을 해석할 수 있는 통계학 지식, 미래시점의 값을 예측하기 위한 예측 모형을 만들기 위한 머신러닝 지식
- 현업 지식. 현실에서 어디에 데이터를 적용해야 큰 효과를 볼 수 있을 것인가를 판단할 수 있는 도메인 지식.
데이터를 다루는 도구들을 먼저 익히고 실습도 해보면서 감을 익히고,
이것들을 효과적으로 사용하기 위한 통계적인 방법론과 머신러닝 기법들을 익히고,
자기만의 전문화 된 영역(마케팅, 의학 등)의 이론들을 익혀라.
이 세가지가 접목이 됐을 때 데이터를 가지고 수행한 프로젝트가 효과를 발휘한다.
현업에서는 어떤 툴이 쓰이고 있나?
보통 인력들을 바로 실무에 투입하기 위해 유료 툴을 사용하는데 회사마다 다양한 툴을 사용해 어떤 툴을 사용한다고 특정할 수는 없다.
대신 공통적으로 사용하는 툴이 있다
1. 주피터 노트북
사실상 분석 결과물 공유를 위한 도구로서의 표준.
내가 연구노트를 쓰는데 코드와 함께 사용한다고 보면 됨.
구글 Colab, hue 등 데이터 eda에 사용하는 도구가 모두 차용 중.
파이썬에서 사용하는 것으로 유명하나 거의 모든 언어를 지원한다.
2. Git
코드의 버전 관리를 위한 표준.
데이터 분석가가 소프트웨어 엔지니어와 같이 일을 안하기는 굉장히 쉽지 않음. 분석을 코드로 하는 이상 협업을 위해 꼭 알아야 하는 도구
현업에서 자주 사용하는 언어는 다음과 같다.
1. 기초 중의 기초 sql
많은 곳에서 기본으로 사용하는 도구. 현대에 만들어져 있는 거의 모든 데이터는 데이터베이스에 들어가 있고 이걸 다루는데는 sql이 필수다.
분석을 위한 sql은 crud중 r만 이해해도 충분함.
2. 모든 것이 가능한 python
어떤 언어든 개발 언어를 배워야 한다면 python이 좋다.
거대한 생태계와 주변에 배우는 사람이 많아서 강력히 추천
면접볼 때 코딩테스트도 python으로 많이 진행함.
3. 데이터를 다루는 전문가의 언어 R
학계 생태계의 든든한 서포트를 받을 수 있는 R.
2차원 데이터, 테이블 형태의 데이터를 다루는데 있어서 가장 좋은 언어는 R.
엑셀과 같은 형태의 데이터를 다루어야 한다면 강력히 추천.
필수적으로 알아야할 용어
1. 데이터 리터러시(Data Literacy)
리터리시는 문해력이다. 읽고 쓰는 능력. 데이터를 읽고, 쓰고, 활용하는 전반적인 능력을 데이터 리터리시라고 한다.
2. 데이터 마이닝(Data Mining)
데이터 분석과 비슷한 개념. 다른 점을 찾자면 데이터 마이닝은 시각과 하지는 않고, 빅데이터에서 필요한 데이터를 찾아내는 느낌.
3. 데이터 분석(Data Analysis)
데이터를 수집하고, 정제하고, 분석해서 의사결정까지 내리는 일련의 과정. 커뮤니케이션을 위해서 시각화까지 하는 과정들을 전부 포괄해서 데이터 분석이라고 함.
4. 인공지능(Artificial Intelligence)
지능형 기계를 만드는 과학과 공학. 인간처럼 사고할 수 있는 기계를 만드는 과학이나 공학의 분야.
머신러닝과 딥러닝과 비교했을 때 인공지능이 가장 큰 개념이다.
5. 머신러닝(Machine Learning)
인공지능보다 조금 작은 개념.
사람이 기계한테 일일이 코드를 주지 않아도 데이터로부터 기계가 직접 학습해서 실행할 수 있는 알고리즘을 개발하는 연구분야.
6. 딥러닝(Deep Learning)
머신러닝의 방법론 중 하나. 머신러닝의 한 분야.
비선형 정보처리를 수행하는 계층을 여러겹으로 쌓아서 학습 모델을 구현하는, 머신 러닝의 한 분야.
많이 뜨는 이유는 엄청나게 많은 데이터에서 중요한 부분, 규칙들을 잘 찾아내서 이것을 통해서 의사결정과 예측을 잘하게 됐음.
원래 인공 신경망 분야는 당시 기술적 한계로 인해 폭삭 망했던 분야임. 이게 시대가 지나면서 빅데이터, GPU와 같은 컴퓨팅 파워, 기존 인공 신경망의 한계를 극복한 CNN, RNN 같은 알고리즘으로 위기를 극복하게 됨.
이후 과거에 망했던 인공 신경망이라는 용어를 사용하면 투자 유치에도 거슬리니까 딥러닝이라는 좀 있어보이는 용어로 부르게 된 것. 원래 인공 신경망이라 불리던 게 한계를 극복하면서 리브랜딩 한거다 라고 알아두면 된다.
데이터 분석 프로세스
- 기획
- 데이터 수집
- 분석
- 보고
크게 4가지라고 보면 되고 이게 선형적으로 한번에 끝나는 것은 아니고 계속 이 과정을 순환하면서 반복하게 된다.
1 기획
문제 정의: 어떤 문제를 해결할 것인가?
분석 방법론 정의:
- 기술 통계 분석: 데이터를 요약하는 방법. 표, 그래프 제작.
- 가설 검정
- 예측 모델 개발: 머신러닝 활용
2. 데이터 수집
담당 부서로부터 데이터 입수
데이터 탐색, 오류 검토: 담당 부서에 쌓인 데이터들이 수치가 극단적으로 높거나 낮은 경우, 컬럼(열)의 이름과 다른 의미를 가진 데이터가 축적되는 등의 오류와 데이터 누락이 많은 경우가 허다하다. 이런 것들을 점검하면서 필요한 자료들을 요청하는 작업을 반복한다.
3. 분석
- 데이터 탐색 및 전처리 과정을 거침. 통계 분석 모형, 머신 러닝 모형 등 사용할 모형에 맞게 데이터를 가공하는 과정. 이 과정이 매우 지난함. 업무 비중의 80% 이상을 차지함.
- 기술 통계 분석 - 집단 간 비교, 시계열 비교
- 가설 검정 - 가설 지지 확인
- 예측 모형 개발, 고도화
4. 보고
- 표, 그래프 제작
- 보고서 작성 - 문서화, 대시보드 개발
'프로그래밍 > 데이터 사이언스 공부' 카테고리의 다른 글
상관행렬(correlation matrix)이 뭐야? 상관행렬의 단점은? (0) | 2023.03.07 |
---|---|
영-분산 예측변수가 뭐야? (0) | 2023.03.07 |
표준 로지스틱 분포의 누적분포함수 (0) | 2023.03.07 |
오즈(odds)란 무엇인가? (0) | 2023.03.07 |
맷플롯립(matplotlib) 패키지로 산점도(scatter plot) 그리기 (0) | 2023.03.05 |