본문 바로가기

카테고리 없음

[패스트캠퍼스 수강 후기] 데이터분석 인강 100% 환급 챌린지 32회차 미션

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