我有一个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个数据样本的准确度呢?
编辑: 对于分类,我这样做: 对于我在textt中: #分类文字 结果将如下所示:
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个示例进行分类
答案 0 :(得分:1)
最好的方法是使用熊猫:
import pandas as pd
df=pd.read_csv("filename.csv")
print(df.sample(4)) #whatever number of random sample size you want
答案 1 :(得分:0)
最可能pandas
解决方案是您的正确选择。如果您想将python中的任何CSV文件通常拆分为随机洗牌的20%:80%训练和测试拆分,则可以使用core 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
的{{3}},因为它可以对其他变量进行分层,并且与pandas DataFrames一起使用。