23. ch04. sklearn - 분류 - 10. 결정 트리(Decision Tree) - 26. ch04. sklearn - 분류 - 13. 오차행렬(confusion matrix)
23. ch04. sklearn - 분류 - 10. 결정 트리(Decision Tree)
from sklearn.tree import DecisionTreeClassifier
dtc = DecisionTreeClassifier()
dtc.fit(x_train, y_train)
dtc_pred = dtc.predict(x_valid)
(dtc_pred == y_valid).mean()
24. ch04. sklearn - 분류 - 11. graph_viz로 시각화 해보기
from sklearn.tree import export_graphviz
from subprocess import call
def graph_tree(model):
# .dot 파일로 export 해줍니다
export_graphviz(model, out_file='tree.dot')
# 생성된 .dot 파일을 .png로 변환
call(['dot', '-Tpng', 'tree.dot', '-o', 'decistion-tree.png', '-Gdpi=600'])
# .png 출력
return Image(filename = 'decistion-tree.png', width=500)
graph_tree(dtc)
gini계수: 불순도를 의미하며, 계수가 높을 수록 엔트로피가 크다는 의미하며
엔트로피가 크다는 의미는 쉽게 말해서, 클래스가 혼잡하게 섞여 있다는 뜻
dtc = DecisionTreeClassifier(max_depth=2)
dtc.fit(x_train, y_train)
dtc_pred = dtc.predict(x_valid)
graph_tree(dtc)
25. ch04. sklearn - 분류 - 12. 분류 정확도 (accuracy)의 함정
오차(Error)
from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split
import numpy as np
target: 0: 악성종양, 1:양성종양
cancer = load_breast_cancer()
print(cancer['DESCR'])
data = cancer['data']
target = cancer['target']
feature_names=cancer['feature_names']
df = pd.DataFrame(data=data, columns=feature_names)
df['target'] = cancer['target']
df.head()
pos = df.loc[df['target']==1]
neg = df.loc[df['target']==0]
pos
양성 환자 357개 + 악성 환자 5개
sample = pd.concat([pos, neg[:5]], sort=True)
x_train, x_test, y_train, y_test = train_test_split(sample.drop('target', 1), sample['target'], random_state=42)
model = LogisticRegression()
model.fit(x_train, y_train)
pred = model.predict(x_test)
(pred == y_test).mean()
my_prediction = np.ones(shape=y_test.shape)
(my_prediction == y_test).mean()
26. ch04. sklearn - 분류 - 13. 오차행렬(confusion matrix)
오차 행렬 (confusion maxtix)
from sklearn.metrics import confusion_matrix
confusion_matrix(y_test, pred)
sns.heatmap(confusion_matrix(y_test, pred), annot=True, cmap='Reds',)
plt.xlabel('Predict')
plt.ylabel('Actual')
plt.show()
from sklearn.metrics import precision_score, recall_score
패스트캠퍼스 데이터분석 강의 링크
bit.ly/3imy2uN
카테고리 없음