'분류 전체보기' 카테고리의 글 목록 (27 Page)
Data Analyst
300x250
300x250

분류 전체보기 366

stratified k-fold 란 ?

K-fold 교차검증에 대해 간단히 설명하면 학습 데이터 셋을 학습 데이터와 검증 데이터로 나눠 반복해서 검증 및 평가하는 것을 의미한다. K-fold 문제점 K-fold 의 경우 데이터 셋을 일정한 간격으로 잘라서 사용한다. 그러다 보니 target의 비율이 일정하지 않게 테스트 셋에 들어갈 수 있다. 만약 target이 0.1,2 세가지로 이뤄져 있는데, 이 상황에서 데이터를 잘라서 학습 할 때, 0,1 만 답으로 가지고 있는 학습데이터를 가지고 학습을 했을때는 당연하게도 모델은 2라는 답을 도출 할 수없다. 마찬가지로 1,2 만 가지고 학습을 진행한다면 0이라는 답을 도출 할 수 없다. 이러한 점이 K-fold의 치명적인 문제점이다. K-fold의 문제점인 target 데이터의 비율을 일정하게 유지..

머신러닝 데이터 분석 4회차

UNIT 4-1 Linear Regression 회귀 분석(Linear Regression) - 어떤 변수들이 한 변수의 원인이 되는지 분석하는 방법 - 인과 관계를 수학적으로 분석하는 것 분류 - 단순 회귀분석: 독립변수가 1개일 때 - 다중 회귀분석: 독립변수가 2개 이상일 때 - 선형 회귀분석: 독립변수와 종속변수의 관계가 선형일 때 - 비선형 회귀분석: 독립변수와 종속변수의 관계가 비선형일 때 선형회귀분석 상관관계: 두 사건이 동시한 일어난 경우, 방향에 따라 양, 음의 상관관계 인과관계: 두 사건이 원인과 결과 실습 UNIT 4-2 Logistic Regression 로지스틱 회귀 독립변수의 선형결합을 이용하여 사건의 발생가능성을 예측하는데 사용되는 통계 기법 회귀를 사용하여 데이터가 어느 카테..

Light GBM 실습

이번 시간에는 LGBM 을 이용해 와인품질 분류를 진행하겠다. LGBM의 경우에도 Scikit learn 라이브러리에서 제공하지 않는다. XGBoost와 마찬가지로 직접 라이브러리를 설치해 불러와야 한다. # 데이터 확인 train.head() # 원핫 인코딩 (pd.get_dummies()) train_one = pd.get_dummies(train) test_one = pd.get_dummies(test) # 모델 정의 from lightgbm import LGBMClassifier model = LGBMClassifier() # 모델 학습 # X 는 train에서 quality 를 제외한 모든 변수 # y 는 train의 qulity 변수 X = train_one.drop('quality',axis..

LGBM 개념

오늘 알아볼 개념은 LightGBM이다. 머신러닝에서 부스팅 알고리즘은 오답에 가중치를 더하면서 학습을 진행하는 알고리즘이다. 그 중 Gradient Boosting Machine(GBM)은 가중치를 경사하강법으로 업데이트 했다. 지난 시간에 배운 XGBoost는 GBM의 단점을 보완한 알고리즘이다. xgboost는 굉장히 좋은 성능을 보여주었지만, 여전히 속도면에서 조금 늘다는 단점이 존재한다. 이러한 단점을 보완해주기 위해 탄생한것이 LightGBM이다. LGBM의 특징 LGBM은 기존의 gradient boosting 알고리즘과 다르게 동작된다. 기존 boosting 모델들은 트리를 level-wise 하게 늘어나는 방법을 사용한 반면, LGBM은 leaf wise 트리 분할을 사용한다. leaf-..

XGBoost 실습

안녕하세요 이번시간에는 XGBoost를 이용해 와인 품질 분류를 진행하도록 하겠다. XGBoost의 경우 자주 사용했던 Scikit learn 라이브러리에서 기본적으로 제공하지 않는다. 그래서 직접 XGBoost 라이브러리를 설치해 불러와야 한다. #데이터 확인 train.head() #원핫 인코딩(pd.get_dummies()) train_one = pd.get_dummies(train) test_one = pd.get_dummies(test) #모델 정의 model = XGBClassifier() #모델 학습 # X는 train에서 quality를 제외한 모든 변수 # y는 train의 quality 변수 # fit 메소드를 이용해 모델 학습 model.fit(X,y) #predict 메소드와 tes..

XGBoost 개념

이번 시간과 다음 시간에는 Boosting 모델 중 하나인 XGboost 모델을 배워볼 예정이다. 이번 시간에는 xgboost의 개념과 사용법에 대해 익히고, 다음 시간에는 xgboost를 이용해 와인 품질 분류를 진행해보겠다. XGBoost란? XGBoost는 Extreme Gradient Boosting의 약자이다. Boosting 기법을 이용하여 구현한 알고리즘은 Gradient Bosst가 대표적 이 알고리즘을 병렬 학습이 지원되도록 구현한 라이브러리가 XGBoost이다. Regression, Classification 문제를 모두 지원하며, 성능과 자원 효율이 좋아서, 인기 있게 사용되는 알고리즘이다. 여기서 Boostinge디갖 무엇이냐면, 여러개의 성능이 높지 않은 모델을 조합해서 사용하는 ..

머신러닝 데이터 분석 3회차

UNIT 3-1 특징공학 특징(Feature) - 어떠한 벡터들이 분포적으로 모여있는것 - 벡터들의 집합을 구분할 수 있는 기준 - 모델의 성능을 높이는 가장 중요한 요소 - 데이터 성질, 문제마다 유효한 특징은 다름 - 다양한 특징을 만들어보고 직접 확인하는것이 중요 모델과 특징 모델과 특징의 관계 정형 데이터 -> GBDT - 수치의 크기(범위) 자체에는 의미가 없고, 크고 작은 관계가 중요 - 결측값이 있어도 어느정도 처리할 수 있음 - 결정 트리의 내부 반복작업에 따라 변수간 상호 작용을 반영 비정형 데이터 -> 인공신경망 - 값의 범위에 영향을 받음 - 결측값을 채워야 함 - 앞 층의 출력을 결합하여 계산하는 연산으로 변수 간 상호작용을 반영 기초가 되는 특징 베이스라인 특징 - 데이터를 최소한..

전처리 복습 - (2)

파생 변수 머신러닝 모델링을 하다 보면 제한된 변수로 성능을 끌어 올리는 데는 한계가 있다. 특히 정형 데이터의 경우 데이터 증강은 제한적이다. 그래서 더욱더 효율적인 파생 변수를 추가하는 것이 중요하다. 파생 변수를 가장 간단하게 추가하는 방법은 연속형 변수를 범주형 변수로 변환하는 방법이 있다. 두번째로는 sklearn의 Polynomial features 라이브러를 이용해 기존 변수를 다항식 형태로 변환 시키는 방법이있다. 연속형 변수 변환 연속형 변수를 범주형 변수로 변환 시키는 방법은 여러가지가 있겠지만 그중 2가지만 알아보겠다. 1. 수치범위구간을 직접 레이블링 하기 2. pandas의 cut() 함수로 레이블링 하기 특히 두번째 pandas cut() 함수를 이용하면 손쉽게 연속형 변수를 범..

전처리 복습 - (1)

다중 공선성 해결 다중 공선성 해결하는 방법은 3가지가 있다. 1. 변수 정규화 2. 변수 제거 3. PCA(주성분 분석) 변수 정규화 - 변수 정규화의 경우 MinMaxScaler()를 통해 손쉽게 구할 수 있다. 변수 제거 - VIF(분산 팽창 요인) 계수가 10이상인 변수들을 다중 공선성이 있다고 판단하여 제거 한다. PCA(주성분 분석) - PCA는 차원 축소의 방법 중 하나인 feature extraction의 대표적인 기법이다. * 차원 축소: 많은 피처로 구성된 다차원 데이터 셋의 차원을 축소해 새로운 차원의 데이터 셋을 생성하는 것 * feature extraction: 기존 피처를 단순 압축이 아닌, 함축적으로 더 잘 설명할 수 있는 또 다른 공간으로 매핑해 추출하는 것

Lv4 | 전처리 | Polynomial Features (2)

이전 시간에 Polynomial Features 라이브러리에 대해 간략하게 알아보았다면, 이번 시간에는 와인 품질 분류 데이터에 Polynomial Features를 적용해보고 decision Tree 모델을 이용해 품질 분류를 해보도록 하겠다. 1. Train 데이터 변환 2. 모델 학습(Decision Tree) 3. Test 데이터 변환 4. 추론 5. 정답 파일 생성 # train 데이터를 PolynomialFeatures 를 이용하여 변환 poly_feautres = PolynomialFeatures(degree=2) # 2차원으로 설정 # 와인 품질 기준인 quality 변수를 제외한 나머지 변수를 포함한 데이터 변환. df =train.drop("quality",axis=1) df_poly ..

300x250
300x250