<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>
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>
<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()
<aside> 💡 맞습니다! random을 이용해서 변수를 생성할 때 parameter인 mean, cov, size를 알맞게 지정하여 만드셨습니다! 그리고 두 numpy.array 변수를 vstack을 이용하여 합친 후, 0, 1로 클래스를 분류하셨고. 색깔도 지정하여 나타내주셨습니다! 잘하셨습니다!
</aside>
참고
케라스 3장 26p
<aside> 💡 채점 기준
<aside> 💡 정답입니다 !
</aside>