我正在学习sklearn并尝试理解交叉验证方法。我已经加载了我的数据集,该数据集是与每个类别相关的子目录,包含相应的文件。
category_data = load_files('Datasets/Data/reviews_6_cat',
shuffle=True, random_state=1, load_content = True,
encoding='latin1', decode_error='strict')
我现在正在尝试检索此分类器的交叉验证分数:
clf = svm.SVC(kernel='linear', C=100)
scores = cross_validation.cross_val_score(clf, category_data.data, category_data.target, cv=5)
但我收到错误" ValueError:无法将字符串转换为浮动..."
我认为我的数据集加载方式可能存在问题,因为我无法检索数据的形状:
category_data.data.shape
给我错误:"' list'对象没有属性'形状'"
我尝试使用numpy.array转换它,但它只是给我一个一维数组,考虑到有6个类别,我认为不对。
如何加载我的数据以便它可以在cross_validation方法中使用?
答案 0 :(得分:0)
忘记在传入方法之前使用TfidfVectorizer转换数据:
tfidf = TfidfVectorizer()
vect_data = tfidf.fit_transform(category_data.data)
clf = svm.SVC(kernel='linear', C=100)
scores = cross_validation.cross_val_score(clf, vect_data, category_data.target, cv=10)
print("Accuracy: %0.2f (+/- %0.2f)" % (scores.mean(), scores.std() / 2))