스터디📖/ML, DL
머신러닝 처음 시작하기(인프런) - 11강 랜덤 포레스트 구현
호프
2021. 8. 10. 10:48
머신러닝 처음 시작하기 (기초 원리 + 초급 실습) - 인프런 | 강의
머신러닝을 처음 접하는 사람들을 대상으로 기초적인 머신러닝 이론을 간략하게 다룬 머신러닝 기초 강의입니다., 그것이 알고 싶다!요새 핫한 머신러닝 🤖 [사진] 🗒 강의소개 (이 강의는 강
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()