<aside> 💡 점수 배점 표 1번 15 2번 15 3번 10 4번 10
5번 5 6번 5 7번 10 8번 10 9번 10 10번 10 ——————— total 100점

</aside>

<aside> 💡 점수 1번 0점 2번 15점 3번 10점 4번 10점
5번 5점 6번 5점 7번 10점 8번 10점 9번 10점 10번 10점 ——————— total 85점

</aside>

<aside> 💡 문제 푸시느라 수고하셨습니다!

</aside>

실습 문제 1

from sklearn.datasets import load_iris
from sklearn.tree import DecisionTreeClassifier
from sklearn.tree import export_graphviz 
import graphviz

iris = load_iris()
dt = DecisionTreeClassifier()
dt.fit(iris.data, iris.target)
dot_data = export_graphviz(dt, out_file=None, feature_names=iris.feature_names, class_names = iris.target_names
                           , filled= True) 
graph = graphviz.Source(dot_data) 
graph

<aside> 💡 export_graphviz 함수는 결정트리를 출력해줍니다. 이 함수에서 다양한 파라미터를 사용하여 문제를 해결할 수 있습니다. feature_names는 트리를 분할할 때의 각 특성을 나타내고 class_names는 각각의 타겟 특성을 표시해줍니다. 또 filled 파라미터를 사용해 노드에서 다수를 차지하는 클래스를 나타내도록 색칠해 줄 수 있습니다.

</aside>

실습 문제 2

<aside> 💡 채점 기준


<aside> 💡 정답입니다!

</aside>

#답안)

import numpy as np
import matplotlib.pyplot as plt
num_sample_per_class = 1000
sample1 = np.random.multivariate_normal(
    mean=[5,1],
    cov=[[1, 0.5],[0.5, 1]],
    size=num_sample_per_class
)
sample2 = np.random.multivariate_normal(
    mean=[1,5],
    cov=[[1, 0.5],[0.5, 1]],
    size=num_sample_per_class
)
inputs = np.vstack((sample1,sample2)).astype('float32')
targets = np.vstack((np.zeros((num_sample_per_class, 1), dtype='float32'),
                     np.ones((num_sample_per_class, 1),dtype='float32')))

plt.scatter(inputs[:, 0], inputs[:, 1], c=targets[:, 0])
plt.show()

스크린샷 2022-10-03 오후 6.35.00.png

<aside> 💡 맞습니다! random을 이용해서 변수를 생성할 때 parameter인 mean, cov, size를 알맞게 지정하여 만드셨습니다! 그리고 두 numpy.array 변수를 vstack을 이용하여 합친 후, 0, 1로 클래스를 분류하셨고. 색깔도 지정하여 나타내주셨습니다! 잘하셨습니다!

</aside>

참고

케라스 3장 26p

실습 문제 3

<aside> 💡 채점 기준

<aside> 💡 정답입니다 !

</aside>