목록python (19)
co-code 님의 블로그
앙상블단일 의사결정나무(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극단치의 경..
시작하기 앞서 라이브러리를 설치 및 로드하자.#필요 라이브러리 설치!pip install matplotlib#라이브러리 로드import pandas as pdimport numpy as npimport matplotlib.pyplot as plt#현재 컴퓨터의 os확인하기 위한 라이브러리 로드import platform선 그래프#인자를 1개만 입력하면 그래프의 y축의 데이터가 입력(x축은 0부터 1씩 증가하는 기본값plt.plot([5,4,3,2,1])#plt안에 show() : 그래프를 보여준다.(ipynb에서는 사용을 안해도 그래프는 출력됨)plt.show()#인자가 2개안 경우 : 첫번째 인자가 x축의 데이터, 두번째 인자가 y축의 데이터plt.plot([1,2,3,4],[70,50,100,90])..
사용하는 라이브러리requests웹 서버에 요청을 보내고 응답을 받는 기능응답 데이터는 bytes나 string형bs4BeautifulSoup class 이용html로 이루어진 문자 데이터를 parsing 작업을 통해서 데이터의 타입을 변경하여 내부의 데이터에 쉽게 접근하여 추출하기 위한 기능"Text"태그를 기준으로 데이터에 접근할 수 있는 함수들이 존재태그를 기준으로 검색하는 방법soup.태그명해당 html문서 안에서 해당 태그중 첫번쩨 태그를 되돌려줌문자열 함수에서 find()함수와 비슷soup.태그명.string첫번째 태그에서 콘텐츠(태그 안의 데이터)를 되돌려줌ex) `.Test --> 'Test'soup.태그명[속성명]첫번째 태그에서 특정 속성의 값을 되돌려줌ex) `네이버` --> `http..
구성클래스는 크게 2가지로 구성1. 속성2. 메서드속성(Attribute) : 클래스 가지는 속성메서드(method) : 클래스가 가지는 동작#class 선언class Class_1(): def __init__(self, _a, _b): self.a=_a self.b=_b def add_value(self): result = self.a + self.b return result생성선언 class 클래스이름():클래스이름의 첫글자는 대문자() : 생략 가능생성된 class 안에는 변수와 함수가 존재같은 변수명을 사용하더라도 각각 따로 저장생성자 선언 def __init__(self,...):__init__() 함수의 첫번째 매개변수는 self로..
