LabVIEW를 사용하여 단순 퍼셉트론으로 분류를 시도했습니다.

본 기사의 내용



LabVIEW Community Edition을 사용하여 Iris 데이터 세트를 단순 퍼셉트론으로 분류했습니다.
아래 사이트를 갓소리 참고로 해, 표준 함수만을 사용해 분류 처리를 작성하고 있습니다.

"기계학습의 원조"퍼셉트론"이란? "
h tps : // 리 ght 여기. 이. jp / b ぉ g / 닌후 ぉ r 마치 온 - ch ぉ gy / shi mp ぇ

처리 흐름



다음의 흐름으로 처리를 행하고 있습니다.
1. 데이터 세트 읽기, 2. 교사 데이터 생성, 3. 산점도를 위한 데이터 생성, 4. 확률적 기울기 강하법에 의한 가중치 업데이트, 5. 경계선 데이터 생성

순서대로 처리를 설명합니다.

1. 데이터 세트 읽기



미리 아래와 같은 처리로 저장해 둔 CSV 파일을 읽어들입니다.
Iris 데이터 세트는 4차원 데이터이지만 결과 플롯을 단순화하기 위해 sepal lenght(cm)와 sepal width(cm)의 두 데이터만 사용합니다.
from sklearn.datasets import load_iris
import pandas as pd

iris = load_iris()
iris_df = pd.DataFrame(iris.data, columns=iris.feature_names)
iris_df["species"] = [iris.target_names[i] for i in iris.target]
iris_df.to_csv("./Iris.csv")



2. 교사 데이터 작성



2 클래스 분류로하기 위해 virginica 행을 삭제하여 교사 데이터를 작성하고 있습니다. setona는 0, versicolor는 1로 라벨링합니다.


3. 산점도용 데이터 작성



Sepal lengh 및 Sepal width를 요소로 하는 클러스터를, Setosa와 Versicolor 각각으로 작성해, Build array 함수로 결합한 후에 XY 그래프에 입력하는 것으로, 플롯을 나누어 그래프 표시하는 것이 가능하게 됩니다.



4. 확률적 구배 강하법에 의한 가중치 갱신



-w0 + w1 × Sepal length + w2 × Sepal width 를 step 함수(0보다 크면 1을, 그 이외는 0을 출력)에 입력한 값이 라벨링한 값과 일치하도록 가중치 w0, w1, w2 업데이트. 오차가 0이 되거나 에포크 수가 상한에 도달할 때까지 처리를 반복합니다.


5. 경계선 데이터 생성



가중치를 사용하여 경계선 데이터를 생성합니다.
루프 횟수 10회는 적당히 정한 값입니다.


결과



에포크수의 상한을 200으로 하는 것으로, 반복시행했을 경우에 있어서도 정해율은 거의 100%가 되었습니다.


드물게 100% 미만이 된다. 가중치의 초기 값에 따라 결과가 변경됩니다.


결론



이 기사에서는 LabVIEW를 사용하여 퍼셉트론에 의한 분류를 실시했습니다.
LabVIEW의 표준 함수를 사용하여 전혀 문제없이 처리를 구현할 수있었습니다.

좋은 웹페이지 즐겨찾기