2017-05-29 36 views
0

目前我有一個很大的CSV文件(大約5GB) 我想逐行閱讀整個文件並嘗試應用最典型的算法(SVM,樸素貝葉斯,線性迴歸,等等)。用於機器學習算法的Python csv流

import numpy as np 
import matplotlib.pyplot as plt 
import pandas as pd 
import csv 

i_f = open('top2Mmm.csv', 'r') 
reader = csv.reader(i_f, delimiter = ';') 
for row in reader: 
print("Fila ->", row) 

我剛剛設法讀取的CSV,但我不知道如何採取每一行,並建立一個模型。 我從一個較小的文件開始加速過程,但我不知道如何使此過程正常工作。 任何線索或提示?

+0

我建議嘗試'pandas'用'read_csv'方法。 – arnold

+0

不幸的是,它不是一個簡單的任務。大多數最大似然估計量需要整個數據一次出現才能學習。如果你想以較小的批次來完成,你需要考慮那些支持它的ML算法。閱讀更多關於「在線轉移學習」,「核心外學習」,「增量學習」等 –

回答

1

您可以使用Pandas Dataframe對象加載CSV,並以這種方式操作數據。

如果需要,您還可以迭代數據幀。

df = pd.read_csv('top2Mmm.csv', sep=';') 
for index, row in train.iterrows(): 
    print(row['fieldName']) 
+0

它不適用於這種數據量我嘗試使用這個腳本,但它超載我的內存...我的方法做出相同的情況,並且如何解決這類問題。我想我需要逐行讀取所有數據集並逐行執行並實時執行,並嘗試應用所有算法 – WinterZ

+0

@WinterZ這可能有所幫助:https://stackoverflow.com/a/14268804/1167890 –

0

將你的數據(行)分成要素(X)和標籤(y)。然後你可以將它們應用到例如SVM。

from sklearn.svm import SVC 
clf = SVC() 
clf.fit(X, y) 

sklearn.svm reference