랜덤포레스트(with Scikit-learn)

Sam (토론 | 기여)님의 2021년 9월 1일 (수) 11:10 판 (→‎랜덤 포레스트)

1 개요

사이킷런으로 랜덤포레스트를 만들 수 있다.

2 방법

절차 설명 방법
데이터 정리 데이터를 불러오고 정리한다.
import pandas as pd

file_path = "..path"
data = pd.read_csv(file_path)  # 필요한 자료를 불러온다. 혹은 df자료를 만든다.
data = data.dropna(axis=0)  # 해당 축에 대해 빈 자료가 있는 행을 버린다.
예측할 데이터 선정 어떤 값을 예측할지 판단 근거와 분리한다.
# 레이블 만들기.
y = data.판단할열  # 판단결과가 될 열을 지정한다.(해당 열을 시리즈로 반환.)

# 근거데이터 만들기.
features = ['열1', '열2', ...]  # 판단할 자료가 될 열을 지정한다.
x = data[features]  # 판단근거를 준비한다.
데이터프레임을 활용하는 경우.(열 이름을 사용해 분리하는 게 가장 간단하고 직관적이다.)
패키지 불러오기 및 데이터 입력

+ 학습

데이터를 입력한다.

일반적으로 machine이라는 이름보다, classifier의 약자인 clf를 주로 쓴다.

from sklearn.enssemble import RandomForestClassifier

machine = RandomForestClassifier(random_state=13)  # 객체 지정
machine.fit(data, label)  # 데이터와 레이블 지정하여 학습 실행.
machine에 대해 다양한 파라미터가 있는데, 이는 상황에 따라 활용.
예측 판단근거를 넣어주면 예측값을 돌려준다.
data_for_predict = df.....  # 위에서 만든 판단근거와 동일한 형태의 df를 넣어준다.
machine.predict(data_for_predict)
가격을 예측할 때 넣는 판단근거의 df는 1행만 넣어주면 되고, 여러 행을 넣으면 리스트로 결과가 반환된다.