2017-05-29 65 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