주가를 scikit-learn으로 기계 학습해 보자 GUI화
4043 단어 Tkinter파이썬scikit-learn
또 중도반단에서도 업하고 나중에 갱신하는 것으로 합니다.
목적
이전에 했던 회귀 분석을 GUI화해 보겠습니다.
GUI화 방법
도서관
구그라고 보면 tkinter라는 툴이 있는 것 같아서 시험해 보겠습니다.
개발 환경
지금까지는 jupyter에서 개발했지만 Spider로 바꿉니다.
jupyter는 사용하기 쉽지만 각 셀 단위로 문법을 확인하기 때문에
나중에 써 두는 것이 체크 대상이 되지 않고 에러가 되는 것이 귀찮다고 생각했기 때문입니다.
만들어 보자
우선 화면을 만들어 보겠습니다.
import tkinter
root = tkinter.Tk()
root.title(u'My First App')
root.geometry("600x450")
root.mainloop()
의외로 간단할 것 같네요.
그럼 입력란을 작성합니다.
label1 = tkinter.Label(text=u'4営業日前:',font=8)
label1.pack()
label2 = tkinter.Label(text=u'3営業日前:',font=8)
label2.pack()
label3 = tkinter.Label(text=u'2営業日前:',font=8)
label3.pack()
label4 = tkinter.Label(text=u'1営業日前:',font=8)
label4.pack()
label5 = tkinter.Label(text=u'予想結果:',font=8)
label5.pack()
label6 = tkinter.Label(text=u'xxxxx円',font=8)
label6.pack()
Entry1 = tkinter.Entry(font=8)
Entry1.pack()
Entry2 = tkinter.Entry(font=8)
Entry2.pack()
Entry3 = tkinter.Entry(font=8)
Entry3.pack()
Entry4 = tkinter.Entry(font=8)
Entry4.pack()
괄호 나쁘다・・・
pack이 아닌 place로 하는 것으로 위치 결정할 수 있는 것 같기 때문에 바꾸어 보겠습니다.
다만 화면의 크기에 따라 보고 싶은 것을 할 수 없게 되어 버리는 것 같기 때문에 일장일단입니다만.
label1 = tkinter.Label(text=u'4営業日前:',font=8)
label1.place(x=50,y=50)
(略)
Entry4 = tkinter.Entry(font=8)
Entry4.place(x=200,y=200)
이것이라면 볼 수 있네요.
버튼을 추가합니다. 누를 때 calcNikkei로 계산합니다.
Button1 = tkinter.Button(text=u'予測します。', font=8)
Button1.bind("<Button-1>", calcNikkei)
Button1.place(x=100,y=300)
root.bind('<Return>', calcNikkei)
Button1.bind("", calcNikkei)
bind에 대해 설명
- 첫 번째: "": 대상 행위. 이것은 왼쪽 클릭. 「Button-2」중간 클릭, 「Button-3」은 오른쪽 클릭 C++, VB등에서는 OnClick() 이벤트 같은 이미지
- 두 번째 : calcNikkei가 뛰어넘는 함수.
root.bind('', calcNikkei)
- 이것은 루트 화면에서 리턴 키를 누를 때 calcNikkei를 실행
- C++, VB 등에서는 Button1의 default=true와 같은 이미지.
값 읽기
float가 아니면 안되기 때문에 체크가 필요합니다.
그런데 체크하는 방법입니까 python에서는 goto로 날릴 수 없기 때문에 try-catch로 대응합니다.
ret를 True로 초기화하고 False로 설정하고 오류가 발생하면 메시지를 표시합니다.
ret = True
if ret:
try:
val1 = float(Entry1.get())
except ValueError:
msg.showerror(title = '4日前のエラー', message = u'4日前の値が数字ではありません')
ret = False
이 상태로 입력란 4까지 판정합니다.
여기까지에서 하나라도 에러의 경우는 ret는 False로 되어 있으므로 계산 결과는 표시하지 않습니다. True인 경우에만 입력란 1~4의 값으로 계산합니다.
if ret:
test_data = np.array([[val1,val2,val3,val4]])
predicted = reg.predict(test_data)
label6["text"] = str(predicted.tolist()[0]) + "円"
else:
label6["text"] = "xxxxx円"
실행해 본 결과
클리어 버튼, 종료 버튼 등도 작성하고 있습니다.
메뉴 바 등을 만들어보고 싶네요.
출처
우선 늘어놓은 것만의 소스입니다.
화면 작성 부분은 클래스화할 수 있을까요.
학습 데이터도 선택할 수 있도록 할 수 있으면.
Reference
이 문제에 관하여(주가를 scikit-learn으로 기계 학습해 보자 GUI화), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/soshi8/items/615e577ef075231343f5
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
도서관
구그라고 보면 tkinter라는 툴이 있는 것 같아서 시험해 보겠습니다.
개발 환경
지금까지는 jupyter에서 개발했지만 Spider로 바꿉니다.
jupyter는 사용하기 쉽지만 각 셀 단위로 문법을 확인하기 때문에
나중에 써 두는 것이 체크 대상이 되지 않고 에러가 되는 것이 귀찮다고 생각했기 때문입니다.
만들어 보자
우선 화면을 만들어 보겠습니다.
import tkinter
root = tkinter.Tk()
root.title(u'My First App')
root.geometry("600x450")
root.mainloop()
의외로 간단할 것 같네요.
그럼 입력란을 작성합니다.
label1 = tkinter.Label(text=u'4営業日前:',font=8)
label1.pack()
label2 = tkinter.Label(text=u'3営業日前:',font=8)
label2.pack()
label3 = tkinter.Label(text=u'2営業日前:',font=8)
label3.pack()
label4 = tkinter.Label(text=u'1営業日前:',font=8)
label4.pack()
label5 = tkinter.Label(text=u'予想結果:',font=8)
label5.pack()
label6 = tkinter.Label(text=u'xxxxx円',font=8)
label6.pack()
Entry1 = tkinter.Entry(font=8)
Entry1.pack()
Entry2 = tkinter.Entry(font=8)
Entry2.pack()
Entry3 = tkinter.Entry(font=8)
Entry3.pack()
Entry4 = tkinter.Entry(font=8)
Entry4.pack()
괄호 나쁘다・・・
pack이 아닌 place로 하는 것으로 위치 결정할 수 있는 것 같기 때문에 바꾸어 보겠습니다.
다만 화면의 크기에 따라 보고 싶은 것을 할 수 없게 되어 버리는 것 같기 때문에 일장일단입니다만.
label1 = tkinter.Label(text=u'4営業日前:',font=8)
label1.place(x=50,y=50)
(略)
Entry4 = tkinter.Entry(font=8)
Entry4.place(x=200,y=200)
이것이라면 볼 수 있네요.
버튼을 추가합니다. 누를 때 calcNikkei로 계산합니다.
Button1 = tkinter.Button(text=u'予測します。', font=8)
Button1.bind("<Button-1>", calcNikkei)
Button1.place(x=100,y=300)
root.bind('<Return>', calcNikkei)
Button1.bind("", calcNikkei)
bind에 대해 설명
- 첫 번째: "": 대상 행위. 이것은 왼쪽 클릭. 「Button-2」중간 클릭, 「Button-3」은 오른쪽 클릭 C++, VB등에서는 OnClick() 이벤트 같은 이미지
- 두 번째 : calcNikkei가 뛰어넘는 함수.
root.bind('', calcNikkei)
- 이것은 루트 화면에서 리턴 키를 누를 때 calcNikkei를 실행
- C++, VB 등에서는 Button1의 default=true와 같은 이미지.
값 읽기
float가 아니면 안되기 때문에 체크가 필요합니다.
그런데 체크하는 방법입니까 python에서는 goto로 날릴 수 없기 때문에 try-catch로 대응합니다.
ret를 True로 초기화하고 False로 설정하고 오류가 발생하면 메시지를 표시합니다.
ret = True
if ret:
try:
val1 = float(Entry1.get())
except ValueError:
msg.showerror(title = '4日前のエラー', message = u'4日前の値が数字ではありません')
ret = False
이 상태로 입력란 4까지 판정합니다.
여기까지에서 하나라도 에러의 경우는 ret는 False로 되어 있으므로 계산 결과는 표시하지 않습니다. True인 경우에만 입력란 1~4의 값으로 계산합니다.
if ret:
test_data = np.array([[val1,val2,val3,val4]])
predicted = reg.predict(test_data)
label6["text"] = str(predicted.tolist()[0]) + "円"
else:
label6["text"] = "xxxxx円"
실행해 본 결과
클리어 버튼, 종료 버튼 등도 작성하고 있습니다.
메뉴 바 등을 만들어보고 싶네요.
출처
우선 늘어놓은 것만의 소스입니다.
화면 작성 부분은 클래스화할 수 있을까요.
학습 데이터도 선택할 수 있도록 할 수 있으면.
Reference
이 문제에 관하여(주가를 scikit-learn으로 기계 학습해 보자 GUI화), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/soshi8/items/615e577ef075231343f5텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)