>  기사  >  백엔드 개발  >  Python의 GBM(그라디언트 부스팅) 알고리즘 예제

Python의 GBM(그라디언트 부스팅) 알고리즘 예제

WBOY
WBOY원래의
2023-06-10 16:51:071765검색

Python의 GBM(Gradient Boosting) 알고리즘 예제

Gradient Boosting(GBM)은 모델을 반복적으로 학습하여 손실 함수를 점진적으로 줄이는 기계 학습 방법입니다. 회귀 문제와 분류 문제 모두에서 좋은 적용 결과를 가지며 강력한 앙상블 학습 알고리즘입니다. 이 기사에서는 Python을 예로 들어 GBM 알고리즘을 사용하여 회귀 문제를 모델링하는 방법을 소개합니다.

먼저 아래와 같이 일반적으로 사용되는 Python 라이브러리를 가져와야 합니다.

import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.ensemble import GradientBoostingRegressor
from sklearn.metrics import mean_squared_error

이 경우 모델링을 위해 6개의 속성과 1개의 범주형 변수가 포함된 자동차 평가 데이터 세트를 사용합니다. 우리는 이러한 속성 변수를 사용하여 차량 가격을 예측할 것입니다. 먼저 아래와 같이 CSV 파일을 Pandas DataFrame으로 읽어야 합니다.

data=pd.read_csv("car_data_1.csv")

다음으로 원본 데이터를 훈련 세트와 테스트 세트로 나누어야 합니다. 우리는 데이터의 80%를 훈련 세트로 사용하고 데이터의 20%를 테스트 세트로 사용합니다.

train_data, test_data, train_label, test_label = train_test_split(data.iloc[:,:-1], data.iloc[:,-1], test_size=0.2, random_state=1)

그런 다음 범주형 변수를 더미 변수로 인코딩하기 위해 특성 추출을 수행해야 합니다. 여기서는 Pandas의 get_dummies 함수를 사용합니다.

train_data = pd.get_dummies(train_data)
test_data = pd.get_dummies(test_data)

이제 GBM 모델을 구축할 수 있습니다. 먼저 모델을 초기화한 다음 매개변수를 설정합니다. 여기서는 모델의 반복 횟수(n_estimators)를 100으로 설정하고 학습률 매개변수(learning_rate)를 0.1로 설정했습니다.

model = GradientBoostingRegressor(n_estimators=100, learning_rate=0.1, random_state=1)

다음으로 훈련 세트 데이터를 사용하여 모델을 피팅합니다.

model.fit(train_data,train_label)

다음으로 테스트 세트 데이터를 사용하여 모델의 성능을 평가합니다. 여기서는 평균 제곱 오차(MSE)를 사용하여 모델의 성능을 평가합니다. 코드는 다음과 같습니다.

pred=model.predict(test_data)
mse=mean_squared_error(test_label, pred)
print("MSE:",mse)

마지막으로 GBM 모델에서 변수의 중요성을 더 자세히 살펴볼 수 있습니다. sklearn의 feature_importances_ 함수를 사용하여 이를 얻을 수 있습니다.

feat_imp = pd.Series(model.feature_importances_, index=train_data.columns).sort_values(ascending=False)
print(feat_imp)

요약하자면, 이 글은 Python의 sklearn 라이브러리를 사용하여 GBM 알고리즘을 구현하는 방법을 보여줍니다. 자동차 평가 데이터세트를 사용하여 차량 가격을 예측하고 모델의 성능을 평가하며, 변수의 중요도 점수도 얻을 수 있습니다. GBM은 기계학습에서 좋은 응용 효과를 가지며 강력한 앙상블 학습 알고리즘입니다.

위 내용은 Python의 GBM(그라디언트 부스팅) 알고리즘 예제의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.