- 신용카드 사용자 연체
- 현업과 가장 유사한 프로젝트 (금융권)라고 생각한다.
데이터를 먼저 보고 확인하는것부터 시작한다.
-
days에 음수값이 나와있는데, 기준일로부터 얼마나 지났는지를 나타내고 있고, 이를 통해 나이를 유추할 수 있다.
-
사고의 흐름
- days_birth 같은 걸 이용해서 파생변수로 만들 수 있겠다.
- job type은 label로 들어가기 때문에 label encoding을 적용할 수 있겠다.
- email같은건 오히려 예측을 더 힘들게 하는 요소가 될 수 있겠다.
-
pd.info() 함수를 통해 데이터가 어떤 dtype을 갖는지, null값이 있는지 등을 확인할 수 있는데,
null값은 어차피 나중에 다 채워넣어야 한다...
-
pd.describe() 함수는 데이터의 기술통계량을 확인할 수 있는데,
-
phone의 4분위수를 보면 0인 것으로 보아, 직장용 핸드폰을 가진 사람이 많지 않겠구나 생각할 수 있다.
-
days_employed 는 다 음수값이어야되는데, max / 양수값인 데이터를 볼 수 있다(이상치)
이런거 제거해주지 않으면 모델 망가진다..!
-
또한 income역시도 중구난방인데 normalize 를 해주어야 한다.
-
target_counts = train['credit'].value_counts()
target_ratio = train['credit'].value_counts(normalize=True)
"""
target_counts ['0'] = 3222 target_counts ['1'] = 6267 target_counts ['2'] = 16968
target_ratio ['0'] = 12.18 % target_ratio ['1'] = 24 % target_ratio ['2'] = 64.13 %
"""
-
클래스 불균형이 있다고 할 수 있지만, 그렇게까지 심하다고 볼 수는 없다.
- 클래스 불균형이 있다 없다의 판단은 그럼 무엇을 기준으로 하는지...?
클래스 불균형의 정의?
사실 지금도 클래스 불균형이 있다고 볼 수 있으나, 10번에 한 번 정도면 무난하고, 충분히 분석이 가능하다.
공장에서 우리가 불량품에 초점을 맞출 때, 그 때는 불량의 비율이 1퍼센트도 되지 않기 때문에 이런 경우에는 SMOTE와 같은 undersampling 기법이 필요하다.
-
데이터 불균형일 때 accuracy는 말도 안되는거고...(암환자한테 accuracy 보여주면 타짜지), precision, recall 을 사용하는 것이 좋다. 그리고 그걸 사용한 점수가 f1 score (조화 평균)
데이터의 정규화는 굉장히 중요하다.
시각화를 통해서 사람들에게 데이터를 알기 쉽게 보여줄 수 있는데, 너무 긴 꼬리들은 잘라줘도 괜찮다.
income total은 9개라서 제거해도 그만인데,
days_employed 값은 지우면 안된다...
도메인 지식
소득이 높을수록 대출 상환을 잘 하고~ 신용도가 높다.
아! 연금수령자들의 잡 타입이 NaN이구나!
- null값을 채워 넣을 때, 데이터가 정규분표를 이루지 않았는지도 모르는 채 사용하는 건 너무 위험하지 않나?
- 참트루! 아주 좋은 질문
- job type에서 tail로부터 n만큼을 지웠는데, n만큼 지우는 거의 기준은 어떻게 잡는지?
- 그냥 둘 다 해보고 결과로 분석해보면 된다. 돌려보자 일단.
- 결측치 대체하고~ age로 바꿔주고, 이상치를 대치해주자.
- 양성으로 나눠버리기, 차 있냐 없냐, 리얼리티가 있느냐 없느냐
ex) 학력 / 계급 / 학년 등...
- 학력 순서 정의
- 학력 순서에 따른 인코딩 딕셔너리 생성
fit_transform => 학습 시키고 적용
transform = > 학습과정 x (no_grad)
원핫 인코딩, 바이너리 인코딩은 (순서를 신경 안써도 되는) 장점이 있기도 하다.
범주형 변수가 너무 많으면?
- 숫자가 적은 애들은 지워버린다던가...하면 된다.
~ 아웃라이어 어쩌구 저쩌구...
트리 기반 모델로, 이진분류 기반의 트리모델 몇백개 합쳐서 숲을 만들면 랜덤 포레스트 ^_-^
왜 Stratified냐?
- 클래스 불균형일 때 validation data에 클래스 불균형이 더 심해질 수 있다.
- 이러한 것을 막기 위해 사용하는 방법이 Stratified를 정해줘서 클래스 비율을 가져감!
실제 경진대회에서는 여기서 나왔던 가설들(나이 조정, 개별 피쳐 추가, 이상치 제거) 해보면서 더 나은 결과를 찾아가는 것. ==> 현업에서도 많이 쓰인다.
클러스터링 K-means를 사용해서 새로운 피쳐를 생성하면 결과가 좋아질 수 있다.
- 사실 고수분은 클러스터링을 별로 안좋아하는데, elbow method 및 king's rule에
마음에이아이 AI researcher - 정재윤
2022 삼성 ai 경진대회 1위 ㄷㄷ
2022 lg 이노텍 공장 경진대회 2위....
연구실이나 회사는 결국 같이 연구오 ㅏ일을 할 동료를 뽑는 것
- 성장 가능성 a
- 낮은 b를 가지고 있더라도 a가 높다면 뽑음.
- N년동안 일을 같이 할건데, N년 후 얼마나 성잘하거니?
- 현재 능력치 b
- 지금 당장 어떤 일을 할 수 있니?
지원 자격 / 우대 사항
- 인턴 경험이 가장 좋지만...요즘은 인턴도 스펙이 있어야 가능한 시대 ㅠㅠㅠ
- Tensorflow / Pytorch에 능통하신분 -> 프로젝트 / 공모전
- AI 관련 대회 수상 경험 -> 경진대회 / 공모전
- "주요" AI/ML 학회에 논문 제출 경험이 있으신분 -> 논문!
이런 요소 말고도 학벌, 학점, 자소서 등이 있으나 3가지를 중점으로 보고,
Kaggle/Dacon만 있는 게 아니라, CVTR 등이 있다.
- 모델의 성능이 가장 중요 / but 현업은 효율도 중요함
- 최신 기술 follow up해야하는건 공통
- 경진대회는 주어진 문제를 해결하지만, 현업은 문제를 정의해서 해결해야함
- 현업은 데이터 수집부터 모델 평가까지 설계가 이루어진다.
- chatgpt 급부상에 따라 NLP직무, LLM 관련 수요가 가장 많다.
-
프로젝트 (가장 준비하기 쉽지만 편차가 너무 심함)
BERT, CNN 말고, LLM, RAG, 파인튜닝 등 멀티모달 등을 하자. (최신 트렌드 반영한 프로젝트)
서비스 프로젝트라면 직접 운영까지 해보면 좋음
하... 역시 LLM 공부해야겠구나...
-
경진대회 공모전이 가장 쉬움.
상을 못타면 애매해짐...
-
논문은 가장 어렵지만 좋은 스펙 중 하나...! 교수님과 함께 협업하는 것을 권장
정 안되면, 국내에 잘 알려지지 않은 "논문리뷰" 해보자.
학벌이 좋은 사람들은 포트폴리오도 좋음...
근데 그 사람들을 이기기 위해서 많은 노력이 필요함.
서류를 통과 해도 심도있는 기초 질문도 준비를 잘 해야함. 기초가 탄탄하지 않으면 망함
CNN 이 DNN보다 나은 이유? - 풀링, convolution의 특성.
- CNN은 2dim , DNN은 1dim
- local feature를 더 잘 잡을 수 있고,
- 이미지가 왜곡되거나 shift 되어도 잘 잡을 수 있다.
- dnn은 embedding layer가 조금만 틀어져도 판별이 어려워지지만, cnn은 convolution 즉, 특성상
self attention vs attention의 차이
batch norm ? layer norm?
이런거 상식이래...공부하자
CNN과 VIT의 차이
- CNN은 글로벌하게 잡지 못하고, local feature를 처리하는데 특화.
- VIT 는 attention을 사용하는데, 모든 이미지를 한 번에 보고 global한 feature를 잘 처리한다.
어텐션 스코어 계산? 인풋에 따라 걸리는 연산량?
llm에서는 batch norm 말고 layer norm?
이런 질문들은 면접 리뷰같은거 봐도 좋음. transformer 논문을 보면 아예 들어가 있음.
나만의 feature 만들기, 나만의 ensemble 기법 등을 통해 공모전 수상하면 취뽀가능 ㅠㅠㅠㅠㅠ
gpu가 부족해도 학습시킬 수 있는 큐라..?
segmentation 최신 논문들 찾아보고, 언급한 논문들 다 찾아보고...
참고한 최근논문들 보면서 쭉 따라가야한다...!
[ hugging face / ai 커뮤니티 / 언어모델 로컬채널 / 링크드인 ak 빨로우... ]
현업에서나 대회에서나 비슷하다.
데이터 전처리는 어디서나 다 필요하다. 데이터 라벨러, 큐레이션, 수집가...등등 너무 많다...