次世代IT人材育成セミナー2020 第2回

第1回の発展課題

各発展課題の解答例を以下に示す。内容は授業中に解説した。

発展課題1

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")

発展課題2

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))

発展課題3

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))

次世代IT人材育成セミナー2020


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS