[英]How to take random sample from a csv file
我有一个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 in random_sample:
但是当我计算分类的准确性时,它将为整个数据集进行计算。 我怎样才能仅计算4个数据样本的准确性?
编辑:对于分类,我要做:对于文本文本中的我:#classify文本结果将如下所示:
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.DataFrame.sample :
import pandas as pd
df=pd.read_csv("filename.csv")
print(df.sample(4)) #Number of items from axis to return. Cannot be used with frac. Default = 1 if frac = None.
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
的train_test_split()
,因为它可以分层其他变量,并且还可以与pandas DataFrames一起使用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.