簡體   English   中英

scikit-learn中的簡單分類

[英]Simple classification in scikit-learn

我正在嘗試使用scikit-learn開發一個簡單的分類程序。 我想提取我的一組tsv值,並將它們保存在數組中。 然后,從上方保存一個包含我的tsv的第一個值的csv,並簡單地隨機分配一個1或0。因此,它將如下所示輸出到csv:

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()

更新:輸入tsv文件的標准格式:

foo1                       foo2   foo3   foo4   fooN
RelevantString123123123
RelevantString456456456
RelevantString789789789

所需結果csv的格式:

RelevantString123123123,1
RelevantString456456456,0
RelevantString789789789,1

隨機生成的csv文件中的第二個1或0。

具有內容的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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM