2번째 줄: |
2번째 줄: |
| ==개요== | | ==개요== |
| 사이킷런으로 랜덤포레스트를 만들 수 있다. | | 사이킷런으로 랜덤포레스트를 만들 수 있다. |
− | ==랜덤 포레스트== | + | ==방법== |
| {| class="wikitable" | | {| class="wikitable" |
| !절차 | | !절차 |
8번째 줄: |
8번째 줄: |
| !방법 | | !방법 |
| |- | | |- |
− | |패키지 불러오기 및 데이터 정리 | + | |데이터 정리 |
− | | | + | |데이터를 불러오고 정리한다. |
| |<syntaxhighlight lang="python"> | | |<syntaxhighlight lang="python"> |
− | from sklearn.enssemble import RandomForestClassifier
| + | import pandas as pd |
| + | |
| + | file_path = "..path" |
| + | data = pd.read_csv(file_path) # 필요한 자료를 불러온다. 혹은 df자료를 만든다. |
| + | data = data.dropna(axis=0) # 해당 축에 대해 빈 자료가 있는 행을 버린다. |
| + | </syntaxhighlight> |
| + | |- |
| + | |예측할 데이터 선정 |
| + | |어떤 값을 예측할지 판단 근거와 분리한다. |
| + | |<syntaxhighlight lang="python"> |
| + | # 레이블 만들기. |
| + | y = data.판단할열 # 판단결과가 될 열을 지정한다.(해당 열을 시리즈로 반환.) |
| | | |
− | data = [
| + | # 근거데이터 만들기. |
− | [1,2,4],
| + | features = ['열1', '열2', ...] # 판단할 자료가 될 열을 지정한다. |
− | [1,5,3],
| + | x = data[features] # 판단근거를 준비한다. |
− | [1,5,2]
| |
− | ]
| |
− |
| |
− | # 데이터와 레이블 정리
| |
− | data = []
| |
− | label = []
| |
− | for row in data:
| |
− | data.append(row[0], row[1]) # 판단의 기초가 되는 데이터리스트를 만든다.
| |
− | label.append(row[2]) # 판단의 결과를 모은다.
| |
| </syntaxhighlight>데이터프레임을 활용하는 경우.(열 이름을 사용해 분리하는 게 가장 간단하고 직관적이다.) | | </syntaxhighlight>데이터프레임을 활용하는 경우.(열 이름을 사용해 분리하는 게 가장 간단하고 직관적이다.) |
| |- | | |- |
− | |학습 | + | |패키지 불러오기 및 데이터 입력 |
− | |일반적으로 machine이라는 이름보다, | + | + 학습 |
| + | |데이터를 입력한다. |
| + | 일반적으로 machine이라는 이름보다, |
| classifier의 약자인 clf를 주로 쓴다. | | classifier의 약자인 clf를 주로 쓴다. |
| |<syntaxhighlight lang="python"> | | |<syntaxhighlight lang="python"> |
− | machine = RandomForestClassifier() # 객체 지정 | + | from sklearn.enssemble import RandomForestClassifier |
− | machine.fit(data, label) # 데이터와 레이블 지정 | + | |
− | </syntaxhighlight> | + | machine = RandomForestClassifier(random_state=13) # 객체 지정 |
− | |}이후 사용법은 위와 같다. | + | machine.fit(data, label) # 데이터와 레이블 지정하여 학습 실행. |
| + | </syntaxhighlight>machine에 대해 다양한 파라미터가 있는데, 이는 상황에 따라 활용. |
| + | |- |
| + | |예측 |
| + | |판단근거를 넣어주면 예측값을 돌려준다. |
| + | |<syntaxhighlight lang="python"> |
| + | data_for_predict = df..... # 위에서 만든 판단근거와 동일한 형태의 df를 넣어준다. |
| + | machine.predict(data_for_predict) |
| + | </syntaxhighlight>가격을 예측할 때 넣는 판단근거의 df는 1행만 넣어주면 되고, 여러 행을 넣으면 리스트로 결과가 반환된다. |
| + | |} |
| [[분류:랜덤포레스트]] | | [[분류:랜덤포레스트]] |
| [[분류:Scikit-learn]] | | [[분류:Scikit-learn]] |