2017-03-22 2 views
1

나는 matlab nn 라이브러리를 처음 사용합니다. 나는 2 개의 종류, 2 분의 1 분류를 ​​찾고있다. documentation에서와 같이 네트워크를 교육했습니다. 코드 outputs = net(inputs)은 나에게 클래스 레이블을주지 않고 대신에 부동 소수점 숫자를 제공합니다. 매개 변수를 최적화하기 위해 그리드 검색에 사용할 수 있도록 클래스 레이블 결과를 얻으려면 어떻게해야합니까? 나는 10 배 교차 검증을 사용하고 있습니다.뉴런 네트워크 matlab 훈련 후 예측

+0

예제 코드, 입력, 출력, 원하는 출력 ...을 보여줍니다. – Wolfie

답변

1

분류를 수행 할 때 신경망으로 이것을 수행하는 전통적인 방법은 one-hot encoding으로 이것을 수행하는 것입니다. one-hot 인코딩을 용이하게하기 위해 가장 큰 응답을 준 뉴런을 조사합니다. 어떤 뉴런이 당신에게 가장 큰 응답을 주 었는지간에 당신이 선택할 수있는 관련 클래스 레이블이 있습니다. 예를 들어 두 개의 뉴런 네트워크에서 뉴런 1이 0.64의 응답을 주었을 때 뉴런 2가 0.36의 응답을 주었을 때 신경 네트워크에 입력 한 입력은 뉴론 1이 가장 높은 응답을 주었기 때문에 레이블 1로 분류됩니다 . 각 기능 층 사이 행에있는 동안 신경망 툴박스에서 각 예제는

참고. 따라서 출력 레이어의 경우 첫 번째 뉴런의 출력은 첫 번째 행에 있고 두 번째 뉴런의 출력은 두 번째 행에 있습니다.

클래스를 쉽게 찾을 수 있도록 GUI 대신 명령 줄 함수를 사용한다고 가정합니다. https://www.mathworks.com/help/nnet/gs/classify-patterns-with-a-neural-network.html#f9-26645. 튜토리얼을 따라 가면 작업 공간에 net이라는 신경망이 있어야합니다. 예제를 네트워크를 통해 전달한 다음 모든 열에서 가장 큰 행을 선택하여 각 예제의 클래스를 결정하십시오.

훈련, 검증을 가정 또는 데이터 테스트는 inputs라는 변수에 저장되고, 코드는 단순히이 될 것이다 :

outputs = net(inputs); 
[~, classes] = max(outputs, 1); 

classes1 x N 배열 될 N이 제출 한 사례의 총 수입니다 네트워크에 제공 한 각 예제의 클래스가 들어있는 네트워크에 추가하십시오.

관련 문제