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()