복습용 기술공부

230309 머신 러닝 _ 업무처럼 연습해보기

01241 2023. 3. 9. 17:36

작업 순서 :

시나리오 세우기(client 주문)

데이터 수집(데이터 살표보기)_ 어떤 데이터인지 파악(도메인 지식)

문제 정의 

 

기대 효과

해결 방안

현업 적용

 

_ 가설세우기 (귀무가설과 대립가설) -> 검증

'''

 - 내가 생각해야 하는 문제의 본질을 다양한 시각에서 바라보는 관점이 필요.
 - 현상에 집중하는 것이 아닌 문제 본질을 이해 하는 것이 중점.
 - 가설을 다양한 관점에서 빠르게 수립하고 데이터로 검증하는 작업!!!

'''

 

※ 다시 또 적는 팁 columns 이 너무 많아서 잘려 보일 때는 세로로 눕혀서 보기

.T

 

계산할 대 비율로 변환해서 보는 것에 익숙해 지기

 

np.where 중첩 사용법

np.where(조건1, 참,
        np.where(조건2, 참, 거짓))
# 거짓 자리에 새 조건 추가

groupby 의 agg(['count','sum']) 은 자주 쓰니 잊지 말기

 

분산이 넓을 것으로 예상되면 (너무 세세하게 잘게 쪼개져 있으면) 정규 분포(표준편차 1)로 바꿔서 정규화 해주기

 

우연을 계산할 수 없고, 신뢰구간을 구할 수 없으면 문제가 생김 -> T 검정 이용하기

 

.sample() 로 표본집단 뽑아서 사용하기 _> 하지만 너무 똑같이 맞추면 오히려 안좋음

 

전부 분류 데이터 일 경우에는 선형분석 사용 X,

 트리알고리즘은 오래된 알고리즘이라서 보통 사장되어있지만, 

'모델 기여 변수 확인 가능'하기 때문에 어떤 모델이 얼마나 영향을 주는지 파악할 때는 가져와서 사용하기

# feature_importances_
importance = pd.DataFrame({'feature_names':X.columns, 'coefficient':model.feature_importances_})
importance

 

-------------------------------------------------------------------------------

코딩 공부 내용

def 함수명(s:str) -> bool:
	return True

->bool 은 함수의 return 값이 bool 타입이라는 것을 미리 써주는 것임!

 

list의 append와 extend 차이

list를 append로 넣으면 객체형태로 들어가지는데, extend로 넣으면 list의 value 그 자체가 전부 들어가짐

자바 스크립트의 [...변수]와 비슷하다고 생각하기

 

set()으로 초기화 안하고 {0} 이런식으로 초기화 해도 됨

 

엄청 유용한 모듈들

from collections import Counter -> dict나 list에서 같은 값의 요소가 몇개인지 파악!!

특히 dict로 갯수 파악하는 문제 풀 때 사용

from collections import deque -> list의 pop 등 쓸 때 속도차이가 많이 남

from collections import defaultdict -> dict에 get으로 불러오는 것처럼 오류가 안나고, + 연산 가능해짐

from collections import OrderedDict -> 혹시라도 코딩테스트 볼 때 dict가 순서대로 할당이 안되면 얘 가져와서 사용하기