2014-04-16 2 views
0

많은 숫자가 포함되어 있지만 대부분 0을 포함하는 희소 매트릭스 .txt 파일이 있습니다.희소 행렬 데이터를 WEKA의 arff 파일 형식으로 변환하는 방법은 무엇입니까?

0.271178 0 0 0 0 0 0 0.538776 -0.631228 -0.501485 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 : 여기 .txt 파일의 샘플은 0.438643 0 0 0 0 0.287754 0 0 0 0 0 0 0 0 0 0 -0.498918 0 0 0 0 0.475561 0 0 0 0 0 0 0 0 0 0.370479 0 -0.300765 0 -1.10987 0 0 0.163637 0 0 0 0 0 0 0.304006 0 0.181697 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.261758 0 0 0 0.153415 0.17412 0 -0.129725 0 0.17598 0 0 0 0 0 0 0.56053 0 0 -0.211302 0 0 0 0 0 0.213277 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0698458 0 0 0 0.661972 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.376654 0 0 -0.604655 0 0 0 0 0.301025 0 0 -0.431324 0 0 -0.139445 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.404718 0.610013 -0.286108 0 0.46045 0 0 0 0 0 -0.193543 0 0 0 0 0 0.315063 0 0 -0.285598 0 내가해야 할 일은 0 0.206607 0

이 파일을 통해 이동 WEKA's 인식 파일 형식, .arff로 데이터를 변환 할 수 있도록, 그래서 데이터 세트에 데이터 마이닝 알고리즘을 실행할 수 있습니다. 누구든지이 작업을 수행하는 방법을 알고 있습니까? 그러나 StackOverflow에서 AWK 언어로 스크립트를 사용하고 있으며 .awk 프로그램을 사용한 적이 없기 때문에 유사한 문제가있는 StackOverflow를 발견했습니다. 따라서이 프로그램을 올바르게 실행할 수 없었습니다. 다음은 그 게시물에 대한 링크입니다 : 12

+1

출력 파일은 어떻게 생겼을 까? –

답변

1

the ARFF file format 살펴과 연결된 질문을했다. 와

#!/bin/sh 
file=$1 
awk ' 
    BEGIN {print "@RELATION something\n"} 
    { 
     data = sep = "" 
     for (i=1; i<=NF; i++) { 
      if ($i != 0) { 
       printf "@ATTRIBUTE a_%d NUMERIC\n", i 
       data = data sep $i 
       sep = "," 
      } 
     print "" 
     print "@DATA" 
     print data 
    } 
' "$file" 

전화 스크립트를 : :

이에게 할 수 있도록, 아주 쉽게 쉘 스크립트 내부 AWK 프로그램을 포함 할 수 있습니다 bash script.sh data_file

@RELATION something 

@ATTRIBUTE a_3 NUMERIC 
@ATTRIBUTE a_7 NUMERIC 
@ATTRIBUTE a_9 NUMERIC 
@ATTRIBUTE a_12 NUMERIC 
@ATTRIBUTE a_33 NUMERIC 
@ATTRIBUTE a_39 NUMERIC 
@ATTRIBUTE a_52 NUMERIC 
@ATTRIBUTE a_58 NUMERIC 
@ATTRIBUTE a_70 NUMERIC 
@ATTRIBUTE a_72 NUMERIC 
@ATTRIBUTE a_74 NUMERIC 
@ATTRIBUTE a_77 NUMERIC 
@ATTRIBUTE a_84 NUMERIC 
@ATTRIBUTE a_86 NUMERIC 
@ATTRIBUTE a_124 NUMERIC 
@ATTRIBUTE a_128 NUMERIC 
@ATTRIBUTE a_129 NUMERIC 
@ATTRIBUTE a_131 NUMERIC 
@ATTRIBUTE a_133 NUMERIC 
@ATTRIBUTE a_141 NUMERIC 
@ATTRIBUTE a_144 NUMERIC 
@ATTRIBUTE a_152 NUMERIC 
@ATTRIBUTE a_185 NUMERIC 
@ATTRIBUTE a_189 NUMERIC 
@ATTRIBUTE a_207 NUMERIC 
@ATTRIBUTE a_210 NUMERIC 
@ATTRIBUTE a_216 NUMERIC 
@ATTRIBUTE a_219 NUMERIC 
@ATTRIBUTE a_222 NUMERIC 
@ATTRIBUTE a_238 NUMERIC 
@ATTRIBUTE a_239 NUMERIC 
@ATTRIBUTE a_240 NUMERIC 
@ATTRIBUTE a_242 NUMERIC 
@ATTRIBUTE a_249 NUMERIC 
@ATTRIBUTE a_257 NUMERIC 
@ATTRIBUTE a_260 NUMERIC 
@ATTRIBUTE a_263 NUMERIC 

@DATA 
0.271178,0.538776,-0.631228,-0.501485,0.438643,0.287754,-0.498918,0.475561,0.370479,-0.300765,-1.10987,0.163637,0.304006,0.181697,-0.261758,0.153415,0.17412,-0.129725,0.17598,0.56053,-0.211302,0.213277,0.0698458,0.661972,0.376654,-0.604655,0.301025,-0.431324,-0.139445,0.404718,0.610013,-0.286108,0.46045,-0.193543,0.315063,-0.285598,0.206607 

를 참조하지만 당신은해야합니다 그게 당신이 출력하기를 원하는지 알려주십시오.

+0

+1 문제를 조사하기 위해 여분의 26 마일을 가야합니다! 나는 그들의 입력을 축약하고 예상되는 결과물을 게시하도록 영업 사원에게 말하려고했다. –

0

위대한 스크립트 Glenn,하지만 색인이 누락되어 속성 이름에 넣습니다. 뭔가 :

@attribute a_0 numeric 
@attribute a_1 numeric 
@attribute a_2 numeric 
@attribute a_3 numeric 
... 

@data 
{3 0.271178,...} 

이것은 속성 위치 정보가 누락되지 않도록하기 위해 필요한 희소 ARFF 형식입니다. 내 권장 사항은 고밀도 형식 (CSV 만)이고 WEKA 필터 NonSparseToSparse을 사용하는 것입니다.

관련 문제