본문 바로가기

Machine Learning71

statsmodels 회귀분석 파이썬에서 회귀분석은 statsmodels 라이브러리를 사용 * OLS(Ordinary Least Squares) * 잔차제곱합(RSS : Residual Sum of Squares)을 최소화하는 방식 1. from_formula( ) 함수를 이용하여 정의한 공식(formula) 을 활용해 회귀분석 정의 가능 formula = """ MEDV ~ scale(CRIM) + scale(ZN) + scale(INDUS) + scale(NOX) + scale(RM) + scale(AGE) + scale(DIS) + scale(RAD) + scale(TAX) + scale(PTRATIO) + scale(B) + scale(LSTAT) """ 2. sm.OLS.from_formula() 메서드를 사용하여 선형 회귀.. 2023. 9. 1.
object 로 된 숫자를 수치(정수)형으로 바꾸기 object 로 된 숫자를 수치(정수)형으로 바꾸기 1. 함수 정의 def str_to_int(string): if type(string) == str: string = string.replace(',', '') return int(string) else: return string 2. 함수 적용 train['price'] = train['price'].apply(str_to_int) 2023. 8. 31.
One-Hot Encoding(원-핫 인코딩) One-Hot Encoding : 예제 코드와 함께 간단히 리뷰 1. 원 핫 인코딩 시행 from sklearn.preprocessing import OneHotEncoder ohe = OneHotEncoder() train_encoded = ohe.fit_transform(train[['Position']]).toarray() test_encoded = ohe.fit_transform(test[['Position']]).toarray() print(train_encoded) OneHotEncoder() 객체를 생성 : ohe fit_transform() 메서드를 사용하여 학습 & 인코딩 수행 ▶︎ train 데이터프레임의 Position 피처(feature)를 입력으로 넣음 ▶︎ 단, OneHotEnc.. 2023. 8. 31.
[앙상블] XGBoost 개념과 사이킷런 래퍼 예제 부스팅이란? 순차적으로 모델의 정확도를 높이는 방법 전체 학습데이터에서 일부를 선택하여 하위 데이터 세트와 이를 학습할 첫 번째 모델을 만듦 첫 번째 모델이 잘 학습하지 못한 부분을 반영해서 두 번째 데이터 세트와 모델을 만들고, 이 과정을 반복하여 점진적으로 모델 정확도를 높임 XGBoost(Extreme Gradient Boosting)란? 이러한 부스팅 기법을 이용하여 구현한 알고리즘은 Gradient Boost 가 대표적 이 알고리즘을 병렬 학습이 지원되도록 구현한 것이 XGBoost (학습시간 단축을 위함) GBM에 기반하고 있지만, GBM의 단점인 느린 수행 시간 및 과적합 규제 부재 등의 문제를 해결함 병렬 CPU 환경에서 병렬 학습이 가능해 기존 GBM보다 학습을 빠르게 완료 XGBoost.. 2023. 8. 30.
회귀 트리와 선형 회귀 회귀 트리와 선형 회귀 회귀트리와 선형회귀는 둘 다 회귀 분석을 수행하는데 사용되는 머신러닝 알고리즘이다 두 알고리즘의 주요한 차이점에 대해 알아보자. 모델의 형태 선형 회귀 : 종속 변수와 독립 변수간 선형 관계를 모델링 모델은 입력 변수들의 가중치와 상수항으로 이루어진 선형 식을 학습하여 예측 수행 회귀 트리 : 의사 결정 트리의 한 종류 입력 변수를 기반으로 데이터를 분할하고 종속 변수의 값을 예측 각 분할 영역마다 특정 값(평균 또는 중앙값 등)을 예측값으로 사용하여 회귀 문제를 해결 모델 구조 선형 회귀 : 하나의 선형 방정식으로 표현됨 입력 변수의 가중치를 학습 특성들의 선형 결합으로 예측값 생성 회귀 트리 : 모델은 트리 구조 데이터를 분할하는 조건문들의 연속을 통해 예측값을 만듦 각 분할 .. 2023. 8. 23.
[회귀] 자전거 대여 수요 예측 회귀 연습 : 자전거 대여 수요 예측 회귀 예제 : 선형 회귀와 트리 기반 회귀 케글 데이터 활용 구글 코랩에서 실습 진행 후, 정리 데이터 클렌징 및 가공, 시각화 1. 라이브러리 임포트 import numpy as np import pandas as pd import seaborn as sns import matplotlib.pyplot as plt 2. 데이터 불러오기 전체적인 데이터 크기와 구성을 확인 bike_df = pd.read_csv('/content/drive/MyDrive/data/bike_sharing/train.csv') print(bike_df.shape) bike_df.head(3) bike_df.info() 3. object 타입 데이터 다루기 datetime 컬럼만 문자형으로.. 2023. 8. 23.
[앙상블 학습] LightBGM LightBGM LightBGM의 가장 큰 장점은 XGBoost보다 학습에 걸리는 시간이 적다는 점 메모리 사용량도 상대적으로 적음 XGBoost과 예측 성능에 별 차이가 없으며, 오히려 기능상 다양성이 약간 더 많음 단점 한 가지는, 적은 데이터 세트(일반적으로 10,000건 이하)에 적용할 경우 과적합이 발생하기 쉽다는 점 균형 트리 분할이 아닌, 리프 중심 트리 분할 방식 ➡ 예측 오류 손실 최소화 카테고리형 피처의 자동변환과 최적 분할 ➡ 원-핫 인코딩 등을 사용하지 않고도 카테고리형 피처를 최적으로 변환하고 이에 따른 노드 분할 수행 실제로 레이블 인코딩 / 원-핫 인코딩 각각을 쓰는 경우, 드라마틱한 차이는 없으므로 크게 신경쓰지 않아도 됨. Null 값도 자동적으로 처리하므로 간편! (XGB.. 2023. 8. 22.
[앙상블] 파이썬 래퍼 XGBoost 개념과 예제 XGBoost의 하이퍼 파라미터 import xgboost model = xgboost.XGBRegressor(objective='reg:squarederror', n_estimators = 3000, eval_metric = 'rmse', early_stopping_rounds=10, random_state=42) objective : 목적함수 reg:squarederror : 회귀문제에 사용. 오차 제곱합을 의미(오차 제곱합을 최소화하는 방향으로 학습 수행) binary:logistic : 이진분류에 사용 multi:softmax : 소프트맥스 함수를 사용하는 다중분류 mulfi:softprob : 확률값을 구하는 다중분류 n_estimators : 트리 수 eval_metric : 조기 종료를 위한.. 2023. 8. 22.
[앙상블] GBM(Gradient Boosting Machine) 부스팅이란? 부스팅 알고리즘은 여러 개의 약한 학습기를 순차적으로 학습&예측하면서 잘못 예측한 데이터에 가중치를 부여하며 오류를 개선해 나감 부스팅의 대표적인 알고리즘 AdaBoost(에이다부스트) : 오류 데이터에 가중치를 부여하면서 부스팅을 수행하는 대표적인 알고리즘 GBM(그래디언트 부스트) : 가중치 업데이트를 경사 하강법을 이용하는 것이 에이다부스트와 차이 XGBoost, LightGBM 의 패키지가 있음 GBM 분류와 회귀 모두 가능 사이킷런의 GradientBoostingClassifier 클래스 사용 순차적인 예측 오류 보정을 통해 학습을 수행하므로, 멀티 CPU 코어 시스템을 사용하더라도 병렬 처리가 지원되지 않아서 대용량 데이터의 경우 학습 시간이 매우 많이 필요함. 아래 예제로 간단히.. 2023. 8. 22.
728x90