본문 바로가기

전체 글128

XGB(Extreme Gradient Boosting) 먼저 XGB를 알기전에 GBM부터 알아야한다. https://lucian-blog.tistory.com/51?category=1002577 XGB는 GBM의 속도와 성능을 향상시킨 업그레이드 버전이라고 보면 된다. 앙상블 기법 중 Boosting 기법은 틀린 답 즉 오류(또는 오답)에 가중치를 부여하여, 순차적으로 다음 학습모델에 반영하여 강한 예측모형을 만드는 기법이다. 그 중 GBM은 이 가중치에 경사하강법을 도입하여 만든 모델이다. 그런데 이 부스팅 모델은 모델들을 순차적으로 학습하기 때문에 속도가 매우 느리다... 데이터가 많아질수록 더 많이 느려진다. 이를 업그레이드 한 것이 XGB이다. XGB는 GBM의 학습하는 모델을 병렬처리하여 학습하게 만든다. 즉 순차적으로 진행이 아닌 동시에 각각의 모.. 2021. 12. 30.
연속형 변수 -> 범주형 변수로 바꾸기 - df.apply(), pd.cut() 1. df.apply() def func(x): if x < 3: return 'lowest' elif x < 3.3: return 'low' elif x < 3.5: return 'normal' else : return'high' train['pH'] = train['pH'].apply(lambda x : func(x)) 2. pd.cut() & pd.qcut() 인자로 데이터, 구간의 갯수, 레이블명 구간의 갯수는 5개로 설정하여 1,2,3,4,5가 된다. labels=False로 설정할 시 그대로 숫자가 넣어지고 만약 labels=['a','b','c','d','e'] 일 경우 숫자 대신 리스트의 값이 넣어진다. cut은 레이블의 범위가 같다. qcut은 갯수가 같다. 만약 0과 99사이의 값을 3.. 2021. 12. 29.
올림, 내림, 반올림 함수 # math.ceil()함수 : 무조건 소수점 자리를 올린다. ex) ceil(99.2) => 100 # math.floor()함수 : 무조건 소수점 자리를 내린다. ex)floor(99.2) => 99 # math.round()함수 : 소수점을 반올림한다. 2021. 12. 29.
데이터프레임 열 또는 행에 함수 적용하기 - df.apply() 보호되어 있는 글 입니다. 2021. 12. 29.
차원 축소 차원축소 - 많은 feature 즉 속성(열)들로 구성된 다차원 데이터의 차원을 축소시켜(속성을 줄인다 = 열을 줄인다) 새로운 속성을 만드는 방법. 일반적으로 차원이 크면 -> 희소한(sparse) 구조를 가지게 된다. = 대부분의 값이 0인 것 이러면 작은 차원에서 학습된 모델보다 신뢰도가 떨어지고 각 속성별 상관관계가 높을 가능성이 크다. 선형회귀(선형모델)의 경우 독립변수간 상관관계가 높으면 다중공산성이 높다.(vif가 10 이상) -> 이러면 예측의 성능이 저하된다. 또한 변수들이 많다보니 시각적으로 표현하기도 어려워서 어떤 특성을 가지고 있는 데이터인지 파악하기가 어렵다. 이렇기에 차원을 축소하는 것. 차원 축소에는 feature selection(속성 선택) 과 feature extracti.. 2021. 12. 29.
다중공산성 해결 방법 전 포스트에서 다중공산성을 확인하는 3가지 방법에 대해 설명했다. scatterplot, heatmap, VIF 이렇게 총 3가지가 있다. 이번엔 다중공산성 해결 방법을 알아본다. 크게 3가지로 나뉘는데, 변수 정규화 변수 제거 PCA(주성분 분석) 먼저 변수 정규화 변수 정규화는 이전 수치형 데이터 정규화 포스트에서 다루었다. https://lucian-blog.tistory.com/48?category=1002577 보통 의사결정나무, 랜덤포레스트와 같이 트리기반 모델은 대소 비교를 통해 구분한다. 그렇기에 숫자와 단위에 크게 영향을 받지 않는다. 하지만 로지스틱 회귀, Lasso 등 평활함수모델(평활=smooth) 선형?함수같은 느낌인 것 같다. 여튼 이 모델들에는 숫자의 크기와 단위에 영향을 많이.. 2021. 12. 29.