레이블이 머신러닝인 게시물을 표시합니다. 모든 게시물 표시
레이블이 머신러닝인 게시물을 표시합니다. 모든 게시물 표시

2022년 5월 10일 화요일

Orange3에서 Logistic Regression 분류

0. 혼자 공부하는 머신러닝+딥러닝에 있는 fish.csv 자료를 이용하여(이곳에서 다운로드) Logistic Regression 분류를 해봅니다.

1. 오렌지의 캔바스를 아래와 같이 구성하고 


2. File Widget을 선택하여 다운받은 파일을 지정하고 >  [Reload] 버튼을 선택합니다.


3. Data Sampler Widget을 선택하여 훈련(Train)데이타(85%)와 검증(Test)데이타(15%)로 분류합니다.


4. Test Prediction 과 Data Table을 선택하여 결과를 확인합니다. 


5. Data Table에서 Feature 클라스별로 계수가 있음을 확인하시고, Test Prediction 의 왼쪽 박스에서 계산결과를 확인합니다. 가장 높은 것으로 분류합니다. 이 계수를 딥러닝에서 조절해 가면서 학습을 한다고 생각하면 편합니다.






최근접 이웃(K-Nearest Neighbors) 분류 2

1. 앞의 최근접 이웃 모델1에 Create Instance Widget을 추가하고 


2. x1 = 25, x2 = 150인 자료를 추가합니다.


3. Data Sampler Widget은 적당하게


4. Predictions Widget을 살펴보면

추가된 x1 = 15, x2 = 150을 0.4(<0.5)로 빙어로 판단했습니다. 이는 스케일의 문제입니다.

5. KNN에 Preprocess를 연결하고 표준화를 선택합니다.


6. Data Sampler Widget에서 Sample Data버튼을 수회 누르면 서 Predictions Widget을 살펴보면 Source ID가 created로 되어있는 것의 kNN 결과를 보면 0.8(>0.5)을 나타냅니다. (1 = 도미)


7. Preprocess Widget을 연결하는 방법은 2가지가 있으니 참고하십시요.







최근접 이웃(K-Nearest Neighbors) 분류 1

0. 최근접 이웃 알고리즘은 우리가 예측하려고 하는 임의의 데이터와 가장 가까운 거리의 데이터 K개를 찾아 다수결에 의해 데이터를 예측하는 방법이다.


1. 오렌지의 캔바스에 위젯을 위치시키고 연결합니다.


2. 혼자 공부하는 머신러닝+딥러닝에 있는 도미와 빙어자료를 이용하였습니다. 파이썬 스크립트를 더블크릭하고 아래 사항을 입력한다음 [RUN]버튼을 선택합다.

import numpy as np
from Orange.data import Table, Domain, ContinuousVariable, DiscreteVariable

iclass = ContinuousVariable("y")
domain = Domain([ContinuousVariable("x1"),
                 ContinuousVariable("x2")], iclass)

ix = [25.4, 26.3, 26.5, 29.0, 29.0, 29.7, 29.7, 30.0, 30.0, 30.7, 31.0,\
      31.0, 31.5, 32.0, 32.0, 32.0, 33.0, 33.0, 33.5, 33.5, 34.0, 34.0,\
      34.5, 35.0, 35.0, 35.0, 35.0, 36.0, 36.0, 37.0, 38.5, 38.5, 39.5,\
      41.0, 41.0, 9.8,  10.5, 10.6, 11.0, 11.2, 11.3, 11.8, 11.8, 12.0,\
      12.2, 12.4, 13.0, 14.3, 15.0]
iy = [242.0, 290.0, 340.0, 363.0, 430.0, 450.0, 500.0, 390.0, 450.0,\
      500.0, 475.0, 500.0, 500.0, 340.0, 600.0, 600.0, 700.0, 700.0,\
      610.0, 650.0, 575.0, 685.0, 620.0, 680.0, 700.0, 725.0, 720.0,\
      714.0, 850.0, 1000.0, 920.0, 955.0, 925.0, 975.0, 950.0, 6.7,\
      7.5, 7.0, 9.7, 9.8, 8.7, 10.0, 9.9, 9.8, 12.2, 13.4, 12.2, 19.7,\
      19.9]
arr = np.column_stack((ix, iy))
target = np.concatenate((np.ones(35), np.zeros(14)))
out_data = Table.from_numpy(domain, arr, target)

3. Data Sampler 위젯에서 훈련데이터와 검증데이터로 나눔니다.


4. Test and Scode Widget에서 확인합니다.

MSE = 0 이고 R^2 = 1.0으로 매우 고무적이네요.

5. Predictions Widget을 선택하여 확인합니다.


예측도 정확합니다.




델파이의 부활(Antigravity와의 만남)?

 델파이 프로그램을 사용하여 개인적으로 필요한 프로그램을 생성해 왔는데, 얼마전부터 파이썬으로 옮겨갔다.  그런데 Google 의 Antigravity를 만나고 나서 델파이에 대한 미련을 버리지 못해  제미나이가 Delphi이에 대한 학습도 엄청 했을...