2013-09-29 1 views
0

나는 scikit-learn을 사용하여 간단한 분류 프로그램을 개발하려고합니다. 내 tsv 값 집합을 배열에 저장하고 싶습니다. 그런 다음, 위에서 내 TSV의 첫 번째 값을 포함하는 CSV를 저장하고 단순히 1 임의 또는 다음과 같이 0 그래서는 CSV로 출력됩니다 :scikit-learn의 간단한 분류

tsvValue1, random1or0 eg 
string123, 0 
foo234, 1 

을 나는 모든 코드 (거의) 따로 있고, 내 문제는 그것을 모두 맞추는 것입니다.

import numpy as np 
from sklearn import metrics,preprocessing,cross_validation 
import pandas as p 

loadData = lambda f: np.genfromtxt(open(f,'r'), delimiter=' ') 

def main(): 
    traindata = list(np.array(p.read_table('../data/train.tsv'))[:,2]) 
    testdata = list(np.array(p.read_table('../data/test.tsv'))[:,2]) 
    y = np.array(p.read_table('../data/train.tsv'))[:,-1] 

    X_all = traindata + testdata 

    # What can I do below? What can I use to export to csv 
    # properly with an appended 1 or 0 value below ? 

    from random import randint 
    randomInt = randint(0,1) #Inclusive  
    testfile = p.read_csv(
     '../data/test.tsv', sep="\t", na_values=['?'], index_col=1) 
    pred_df = p.DataFrame(testdata, index=testfile.index, columns=['label']) 
    pred_df.to_csv('test.csv') 
    print ("your random file has been created..") 

if __name__=="__main__": 
    main() 

UPDATE : 입력 TSV 파일 표준 형식 : 원하는 결과를 CSV의

foo1      foo2 foo3 foo4 fooN 
RelevantString123123123 
RelevantString456456456 
RelevantString789789789 

형식 :

RelevantString123123123,1 
RelevantString456456456,0 
RelevantString789789789,1 

제 1 또는 0의 CSV 파일 ranzomly 생성된다.

+1

'values'가'tsvValue1' 칼럼의 값 목록이면'zip (values, (random.randint (0, 1) fo r_ itertools.count()))''(value, zero_or_one)'쌍을 줄 것입니다. 그것은 당신이 찾고있는 것입니까? – Rolando

+0

@Rho 응답에 감사드립니다. 이 작업을 수행하는 코드를 작성하려고 시도했지만 형식적으로 zero_or_one의 csv를 출력하도록 올바르게 컴파일 할 수는 없습니다. 이걸 좀 도와 주실 수 있나요? –

+0

csv 파일에서 입력 파일과 예상 출력의 샘플 (몇 줄 만)을 제공 할 수 있습니까? – Rolando

답변

1

(탭으로 구분) 내용에 파일 input.tsv 갖는 방법 출력을 얻으려면 당신이 원하는

foo1      foo2 foo3 foo4 fooN 
RelevantString123123123 
RelevantString456456456 
RelevantString789789789 

이 보여줍니다 :

>>> import numpy as np 
>>> import pandas 
>>> df = pandas.read_csv('input.tsv', sep='\t') 
>>> df['value'] = pandas.Series(np.random.randint(2, size=len(df)), index=df.index) 
>>> df.to_csv('output.csv', cols=['foo1', 'value'], index=False) 

output.csv 내용은 다음과 같습니다

foo1,value 
RelevantString123123123,1 
RelevantString456456456,0 
RelevantString789789789,0