스터디📖/ML, DL

머신러닝 처음 시작하기(인프런) - 11강 랜덤 포레스트 구현

호프 2021. 8. 10. 10:48

https://www.inflearn.com/course/%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9D-%EC%B2%98%EC%9D%8C-%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0/dashboard

 

머신러닝 처음 시작하기 (기초 원리 + 초급 실습) - 인프런 | 강의

머신러닝을 처음 접하는 사람들을 대상으로 기초적인 머신러닝 이론을 간략하게 다룬 머신러닝 기초 강의입니다., 그것이 알고 싶다!요새 핫한 머신러닝 🤖 [사진] 🗒 강의소개 (이 강의는 강

www.inflearn.com

11강 랜덤 포레스트 구현

import pandas as pd
import numpy as np
import seaborn as sns
from sklearn.datasets import load_iris

iris = load_iris()
print(iris.DESOR) #iris data 확인
print(iris.target_names) #['setosa' 'versicolor' 'virginica']
print(iris.feature_names) #['sepal length(cm)',,,,,, 등등 계속 써왔던 것]
print(iris.target) #target 데이터

X = iris.data
y = iris.taraget
df = pd.DataFrame(X, columns = ['sepal_width(cm)', 'sepal_length(cm)', 'petal_width(cm)', 'petal_length(cm)'])
df.head() #5개 행 출력

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.3)
#70프로를 트레이닝 셋, 30프로를 테스트 셋으로

from sklearn.ensemble import RandomForestClassifier
clf = RandomForestClassifier(n_estimators=100) #n_estimators = 랜덤 포레스트 안에 만들어지는 의사 결정 나무의 갯수
clf.fit(X_train, y_train) #트레이닝 시키기
y_pred = clf.predict(X_test)

from sklearn import metrics
print("Accuracy : ", metrics.accuracy_score(y_test, y_pred)) #정확도 구하기
feature_imp = pd.Series(clf.feature_importances_, index=iris.feature_names).sort_values(ascending=False)
#네 개의 feature 중 어떤 것이 가장 영향을 미쳤는지
feature_imp #오름차순으로 정렬되어 출력

import matplotlib.pyplot as plt
sns.barplot(x=feature_imp, y=feature_imp.index) #그래프 출력
plt.xlabel('Feature importance score')
plt.ylabel('Features')
plt.title('Feature importance visualizing')
plt.show()