목록2026/05 (10)
co-code 님의 블로그
RNN (순환 신경망)이전 시점의 정보를 현재 시점의 계산에 반영하는 구조첫번쨰 입력 : 초기 상태(h_0 = 0)와 입력에 대한 상태(h_1)로 계산두번째 입력 : 이전의 상태(h_1)와 결합해서 계산 (h_2)세번재 입력 : 이전의 입력상태(h_2)와 현재의 입력상태를 결합해서 계산(h_3)...마지막 입력(반복 작업이 완료되었을 때) : 마지막 상태 (h_t) 생성 -> 모든 과거의 정보를 결합해놓은 상태parameter(매개변수)input_size : 각 시점(레이어)에서 입력 feature의 수hidden_size : 은닉층(출력)의 크기num_layers기본값 : 1RNN 은닉층의 개수 (층이 깊어질수록 복잡한 패턴을 발생)층의 개수가 늘어날수록 시간은 증가하고 과적합의 위험성이 존재1 ~3 ..
K - Means ( 평균을 이용한 군집화 )k개의 자동 분류하는 비지도 학습 알고리즘종속 변수가 존재하지 않는 데이터에서 유사한 데이터끼리 모음서로 가까운 데이터는 같은 그룹으로 묶어서 그룹화그룹의 중심점을 반복적으로 계산(중심점의 이동)하여 군집을 형성작업 순서초기의 중심점(k개)을 선택각각의 데이터들을 중심점과의 거리를 확인가까운 거리를 중심점으로 할당각 군집의 평균을 구해서 새로운 중심점을 설정중심점의 변화가 거의 없을 때까지 반복 실행장점 : 빠르고 단순하여 대용량의 데이터에서 적합단점군집의 수를 미리 알고 작성해야 함이상치에 굉장히 민감함parametern_clusters기본값 : 0군집의 개수를 지정너무 작거나 큰 경우에는 성능 저하init기본값 : 'K-Means++'초기의 중심점을 설정하..
PCA차원 축소 기법 : feature의 개수가 줄어든다.고차원 데이터(다수의 feature를 가진 데이터셋)를 상관관계가 없는 새로운 축으로 변환데이터의 분산을 최대한 보존하면서 차원을 줄여서 시각화parameter(매개변수)n_components기본값 : None주성분의 개수 또는 비율로 설정None : 모든 주성분을 유지int : 선택할 주성분의 개수 float(0 ~ 1) : 누적 설명 분산 비율을 기준으로 필요한 주성분의 개수를 선택'mle' : 자동으로 최적 차원의 수 측정 (샘플의 개수 whiten기본값 : False주성분 벡터를 단위 분산으로 정규화를 할 것인가 지정데이터의 정규화 효과svd_solver기본값 : 'auto'분해 방식 지원'auto' : 데이터의 크기에 따라서 자동 선택'f..
랜덤 포레스트(RandomForest)배깅 방식을 활용데이터 샘플링 방식 + 다수결 or 평균 사용사용하는 모델은 의사결정나무 고정 (랜덤포레스트 안에 의사결정나무가 하드코딩되어있음)각 노드에서 분할 할때마다 모든 피치에서 일부만 무작위로 선택하여 트리간의 상관성을 낮춰준다. -> 다양성 증가여러 결정 트리를 서로 다르게 학습 시킨 뒤 다수결(분류), 평균(회귀)으로 예측하는 배깅 기반의 앙상블부트스트랩(중복 데이터를 허용)과 특성의 무작위 선택을 이용해 모델 간의 상관성을 낮춰서 성능과 안정성을 높이는 방법고차원 데이터에서 안정성이 굉장히 높다대부분의 실무에서 많이 사용이 되느 알고리즘paramer(매개변수)n_estimators기본값 : 100모델의 개수를 지정criterion분류 : gini(기본값..
앙상블단일 의사결정나무(DecisionTree)의 단점을 극복하기 위해 머신러닝 모델을 연결하여 더 강력한 모델을 만드는 과정주어진 자료로부터 여러개의 예측 모델을 만든 후 예측 모형을 조합하여 하나의 예측 모형을 생성하는 과정대표적인 기법 : 배깅, 부스팅, 랜덤 포레스트배깅주어진 자료를 모집단으로 간주하여 주어진 자료에서 여러개의 부트스트랩 자료를 생성하고 각각의 부트스트랩 자료에 예측 모델을 만든 후 결합하여 최종 모델 완성장점분산을 줄이고 과적합의 문제를 완화안정적인 성능 보장비선형 구조의 데이터와 노이즈 데이터에 대한 문제가 완화parameter(매개변수)estimator기본값 : None기본 모델을 설정n_estimators기본값 :10생성시킬 모델의 개수max_samples기본값 : 1.0생..
SVM(서포트 벡터 머신)패턴 인식, 자료 분석들을 위한 지도 학습 모델회귀, 분류 모두 존재회귀선에서 일정 양만큼 떨어진 부분에 영역을 생성하여 영역 안과 밖에 있는 데이터들의 가중치를 변화parameter(매개변수)C기본값 : 1.0규제 강도의 역수마진(margin) 영역의 크기kernel(커널 함수의 종류)기본값 : 'ref'실제의 데이터가 선형이 아닌 경우 커널 함수를 이용하여 데이터를 고차원 공간으로 배열하여 직선으로 구분'linear' : 선형 SVM'poly' : 다항식 커널'rbl' : 가우시안 커널 (가장 많이 사용)gamma커널의 개수kernel이 linear가 아니면 사용gamma가 크다면 경계가 복잡해짐 (과적합 위험)gamma가 작다면 경계가 유얀해짐 (일반화 위험 : 과소적합 ..
부스팅(Boosting)모델을 순차적으로 학습이전 모델이 잘못 맞추거나 확률이 애매한 경우 데이터에 가중치를 증가시켜 다음 모델에서 집중 학습단순 모델들을 결합하여 강력한 모델로 생성장점편향이 감소해 예측의 확률이 올라감단순한 모델들을 이어서 학습하기 때문에 성능이 많이 올라감단점순차적으로 학습하므로 병렬화가 어려움 -> 학습 속도가 느려짐학습의 횟수가 너무 많은 경우 과적합 위험파라미터 튜닝이 중요함대표 알고리즘AdaBoost오차가 더 큰 샘플에 더 높은 가중치를 부여각각의 모델들은 가중치가 조정이 된 데이터 셋을 이용하여 학습최종 모델에서는 가중치의 합산으로 변경GradientBoost(GBM)이전 모델의 잔차를 예측하는 새로운 모델을 새롭게 추가함손실 함수 직접 최적화계산량이 많음XGBoostGB..
로지스틱 회귀모델의 이름은 회귀 모델이지만 결과는 분류0과 1 사이의 값(실수)을 예측0.5보다 큰 경우 1 출력0.5보다 작은 경우 0 출력종속 변수가 범주형인 경우 적용하는 회귀 분석 방식종속 변수 y를 직접 모델링 하지 않고 y가 특정 범주에 속하는 확률을 모델링parameter(매개변수)penalty기본값 : L2L1 : LassoL2 : Ridgeelasticnet : ElasticNetNone : 규제 없음(선형 회귀)C 기본값 : 1.0규제 강도의 역수작을수록 규제 강도 큼(과적합 방지)클수록 규제 강도 작음(유연)class_weight기본값 : None클래스의 불균형을 처리'balanced' : 클래스의 빈도에 반비례하게 가중치를 부여dict형 데이터 : {클래스명 : 가중치,...} 특정..
데이터 불균형 문제정상을 정확하게 분류하는 것과 이상을 정확하게 분류하는 것 중 이상을 정확하게 분류하는 것이 더 중요함일반적으로는 정산의 데이터가 이상의 데이터보다 많다.데이터의 불균형이 발생할 수 있다.target 데이터에서 0(정상), 1(이상) 중 0 판단을 더 많이 하게 되는 경우가 발생할 수 있음(예측력이 떨어짐)소수의 데이터의 중요도가 낮게 판단이 되어 실제 모델에서는 해당하는 예측이 적게 발생다수의 데이터와 소수의 데이터의 특정 비율로 조절해주는 샘플링 기법이 존재(언더 샘플링, 오버 샘플링)샘플링을 사용하기 위한 라이브러리(imbalanced-learn) 설치 필요!pip install imbalanced-learn언더 샘플링다수의 라벨을 가진 데이터를 샘플링하여 소수의 데이터의 개수만큼..
이상치값이 이상한 데이터결측치결측치를 확인하는 방법isna() 함수를 이용하여 결측치 유무 판단sum() 함수를 이용하여 결측치 개수 확인info() 함수를 이용하여 non-null count 확인범위를 벗어나는 데이터특정 범위를 벗어나는 데이터를 확인하는 방법unique() 함수를 이용하여 특정 필드의 유일 데이터 확인value_counts() 함수를 이용하여 특정 필드와 데이터들의 빈도수 확인isin() 함수를 이용하여 특정 값들에 포함되어있는가를 확인하고 부정연산자(비트연산자(-))를 이용하여 데이터를 대입값이 크게 벗어나는 데이터(극단치)극단치 확인하는 방법IQR방식boxplot()의 수염의 경계Q3(3사분위수)와 Q1(1사분위수)를 이용하여 극단치의 범위를 지정IQR = Q3 - Q1극단치의 경..