개발/머신러닝

파이썬. 머신러닝 - Decision Tree, Random Forest

웅'jk 2022. 12. 2. 17:30

Decision Tree 는 선택을 계속하는 기법입니다.

특정 조건이 주어졌을때 yes 또는 no 로 분기점을 내고 이러한과정을 반복합니다.

 

# Importing the libraries
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

# data read
df = pd.read_csv('../data/Social_Network_Ads.csv')

# set x y
X = df.iloc[:,[2,3]]
y=df['Purchased']

# feature scaling
from sklearn.preprocessing import MinMaxScaler
scaler_X = MinMaxScaler()
X=scaler_X.fit_transform(X)

# training / test
from sklearn.model_selection import train_test_split
X_train,X_test,y_train,y_test = train_test_split(X,y,test_size = 0.25 , random_state = 1 )

#modeling
from sklearn.tree import DecisionTreeClassifier
classifier = DecisionTreeClassifier(random_state=1)
classifier.fit(X_train,y_train)

# predict
y_pred = classifier.predict(X_test)

# 결과 
from sklearn.metrics import confusion_matrix
confusion_matrix(y_test, y_pred)

from sklearn.metrics import accuracy_score
accuracy_score(y_test,y_pred)

위 사진과 같은 형식으로 나오게 된다.

 

Random Forest 는 위 dicision tree 를 강화한 기법이다.

# import lib
from sklearn.ensemble import RandomForestClassifier

# set model
classifier2 = RandomForestClassifier(n_estimators=100)
classifier2.fit(X_train,y_train)

# predict
y_pred2 = classifier2.predict(X_test)

# result
confusion_matrix(y_test, y_pred2)
accuracy_score(y_test,y_pred2)

트리와 거의 유사하게 나오나 조금 더 개선이 된 모습이다.