Python 如何从csv文件中随机抽取样本
我有一个包含10行的csv文件:Python 如何从csv文件中随机抽取样本,python,Python,我有一个包含10行的csv文件: Text,Class text0,class0 text1,class1 ... text9,class9 我对文本进行分类,然后将其与csv文件中标记的正确类进行比较。我想从中随机抽取4篇文章和它们的类别。我有: import random textt=data['Text'] class_one=data['Class'] c=textt[0:] random_sample=random.sample(c,4) 然后,我的分类从以下内容开始: for i
Text,Class
text0,class0
text1,class1
...
text9,class9
我对文本进行分类,然后将其与csv文件中标记的正确类进行比较。我想从中随机抽取4篇文章和它们的类别。我有:
import random
textt=data['Text']
class_one=data['Class']
c=textt[0:]
random_sample=random.sample(c,4)
然后,我的分类从以下内容开始:
for i in random_sample:
但是当我计算分类的准确度时,它会计算整个数据集的准确度。我如何让它只计算4个数据样本的精度
编辑:
至于分类,我有:
对于textt中的i:
#分类文本
结果如下所示:
choice 1
choice 2
choice 1
...
并将其与csv文件中的正确类进行比较:
choice 1
choice 2
choice 2
...
准确度计算为66.6%,其中:
for i in class_one:
#if predicted_class= correct_class:
#accuracy=number_correct/total_number
我只想对随机样本进行分类,因此与其对所有10个示例进行分类,不如只对4个进行分类,最好的方法是使用:
最有可能的是
pandas
解决方案正适合您。如果您想在python中将任何CSV文件一般拆分为随机的20%:80%训练和测试拆分,您可以使用核心python:
import random
x = open("dataset.csv").readlines()
random.shuffle(x)
train = x[:int(total*0.8)]
test = x[int(total*0.8):]
由于您似乎正在尝试评估某种分类(机器学习?)任务,我强烈建议您查找
scikit learn
,因为它可以对其他变量进行分层,也可以与pandas数据帧一起使用。您还没有向我们展示您是如何做您所谈论的任何事情的;没有答案,很难给你一个具体的答案。但最有可能的是,这只是调用(随机样本)
而不是(c)
,或类似的问题。只需使用dataframe。样本(4),参考文档-我刚刚添加了一个编辑,这有帮助吗?
import random
x = open("dataset.csv").readlines()
random.shuffle(x)
train = x[:int(total*0.8)]
test = x[int(total*0.8):]