libsvm 데이터 형식 [닫힘]


31

지원 벡터 분류를 위해 libsvm ( http://www.csie.ntu.edu.tw/~cjlin/libsvm/ ) 도구를 사용하고 있습니다. 그러나 입력 데이터의 형식이 혼란 스럽습니다.

읽어보기에서 :

교육 및 테스트 데이터 파일의 형식은 다음과 같습니다.

<label> <index1>:<value1> <index2>:<value2> ...
.
.
.

각 줄은 인스턴스를 포함하며 '\ n'문자로 끝납니다. 분류의 <label>경우 클래스 레이블을 나타내는 정수입니다 (다중 클래스 지원). 회귀의 <label>경우 목표 값은 실수 일 수 있습니다. 1 클래스 SVM의 경우 사용되지 않으므로 숫자가 될 수 있습니다. 쌍 <index>:<value>은 특징 (속성) 값을 제공합니다. <index>1부터 시작하는 정수 <value> 이며 실수입니다. 미리 계산 된 커널은 예외입니다. 여기서 <index>0부터 시작합니다. 미리 계산 된 커널 섹션을 참조하십시오. 인덱스는 오름차순이어야합니다. 테스트 파일의 레이블은 정확도 또는 오류를 계산하는 데만 사용됩니다. 이들이 알려지지 않은 경우 첫 번째 열에 숫자를 채우십시오.

다음과 같은 질문이 있습니다.

  1. 의 사용은 무엇입니까 <index>? 어떤 목적으로 사용됩니까?
  2. 다른 데이터 인스턴스의 동일한 인덱스 값간에 대응 관계가 있습니까?
  3. 사이에 색인을 놓치거나 건너 뛰면 어떻게됩니까?

12 행에서 libsvm 패키지에 포함 된 * heart_scale * 데이터 파일이 인덱스 2에서 시작하기 때문에 묻습니다 <value>. 참고 : 패키지와 함께 제공된 tools / checkdata.py 도구는 * heart_scale * 파일이 올바르다 고 말합니다.

답변:


23

이 링크가 도움이 될 것입니다 : http://www.csie.ntu.edu.tw/~cjlin/libsvm/faq.html#/Q3:_Data_preparation

데이터는 희소 배열 / 매트릭스 형태로 저장되어 있습니다. 기본적으로 이는 0이 아닌 데이터 만 저장되고 누락 된 데이터는 0을 보유한 것으로 간주됩니다. 질문이 있으시면 :

a) 색인은 단순히 특징 / 매개 변수를 구별하는 방법의 역할을합니다. 초 공간의 관점에서, 그것은 단지 각 구성 요소를 지정하는 것입니다 : 예 : 3 차원 (3 가지 특징) 인덱스 1,2,3은 x, y, z 좌표에 해당합니다.

b) 대응은 단지 수학적이며, 초평면을 구성 할 때 좌표로 사용됩니다.

c) 중간에 하나를 건너 뛰면 기본값 0이 할당되어야합니다.

간단히 말해 +1 1 : 0.7 2 : 1 3 : 1은 다음과 같이 번역됩니다.

(0.7,1,1) 지점 인 +1 등급에 할당하십시오.


4

작고 빠른 안내서 :

LibSVM 형식은 문서를 미리 처리해야한다는 의미입니다. 사용할 분류 클래스 수 (대부분 2 개)와 기능 공간을 알아야합니다.

분류 클래스 는 참 / 거짓과 같습니다. 0,1, ... 여기서 정수로 변환해야합니다 (예 : 0,1).

피처 공간 은 다차원 데이터를위한 공간입니다. 각 기능 (벡터)에는 고유 한 ID (인덱스)와 값이 있어야합니다. 예 : 1 : 23.2는 피처 / 치수 1의 값이 23.2임을 의미합니다.

<label> <index1>:<value1> <index2>:<value2> ... <indexN>:<valueN>
...
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.