各発展課題の解答例を以下に示す。内容は授業中に解説した。
while(True):
print("式:",end="")
f=input()
tok=f.split(" ")
if tok[0]=='q': break
n1=float(tok[0])
n2=float(tok[2])
op=tok[1]
a="Error: 不正な演算子です"
if op=="+":
a=n1+n2
elif op=="-":
a=n1-n2
elif op=="*":
a=n1*n2
elif op=="/":
a=n1/n2
print(a)
print("end")
from sklearn.svm import LinearSVC
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import accuracy_score
learn_data=[[0,0,0],[1,1,1],[0,0,1],[0,1,1],
[1,0,0],[1,1,0],[1,0,1],[0,1,0]]
learn_label=[0,1,0,0,
0,0,0,0]
clf=LinearSVC(C=3)
#clf=KNeighborsClassifier(n_neighbors=1)
clf.fit(learn_data,learn_label)
test_data=[[1,0,0],[1,1,0],[0,0,1],[0,1,0],
[0,0,0],[1,1,1],[1,0,1],[0,1,1]]
test_label=clf.predict(test_data)
print(test_data,"の予測結果:",test_label)
print("正解率=",accuracy_score([0,0,0,0,0,1,0,0],test_label))
from sklearn.svm import LinearSVC,SVC
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import accuracy_score
import random
N=10
M=200
list1=list(range(2**N))
list2=random.sample(list1,M)
learn_data=[]
for i in list2:
bin_str=format(i,"0"+str(N)+"b")
bin_str_arr=list(bin_str)
bin_arr=[int(x) for x in bin_str_arr]
learn_data.append(bin_arr)
learn_label=[random.randint(0,1) for x in range(M)]
print("list2:",list2)
print(learn_data)
print(learn_label)
clf=LinearSVC()
#clf=SVC()
#clf=KNeighborsClassifier(n_neighbors=1)
clf.fit(learn_data,learn_label)
pred_label=clf.predict(learn_data)
print("正解率=",accuracy_score(learn_label,pred_label))