我正在学习 sklearn 模块以及如何拆分数据。
我按照说明代码做了
categories = ['alt.atheism', 'talk.religion.misc', 'comp.graphics',
'sci.space']
newsgroups_train = fetch_20newsgroups(subset='train',
remove=('headers', 'footers',
'quotes'),
categories=categories)
newsgroups_test = fetch_20newsgroups(subset='test',
remove=('headers', 'footers',
'quotes'),
categories=categories)
num_test = len(newsgroups_test.target)
test_data, test_labels = int(newsgroups_test.data[num_test/2:]),
int(newsgroups_test.target[num_test/2:])
dev_data, dev_labels = int(newsgroups_test.data[:num_test/2]),
int(newsgroups_test.target[:num_test/2])
train_data, train_labels = int(newsgroups_train.data),
int(newsgroups_train.target)
print('training label shape:', train_labels.shape)
print( 'test label shape:', test_labels.shape)
print( 'dev label shape:', dev_labels.shape)
print('labels names:', newsgroups_train.target_names)
但是我得到了这样的错误
TypeError Traceback(最后一次调用) 在 () 8个 9 num_test = len(newsgroups_test.target) ---> 10 test_data, test_labels = int(newsgroups_test.data[num_test/2:]), int(newsgroups_test.target[num_test/2:]) 11 dev_data,dev_labels = int(newsgroups_test.data[:num_test/2]),int(newsgroups_test.target[:num_test/2]) 12 train_data,train_labels = int(newsgroups_train.data),int(newsgroups_train.target)
TypeError: slice indices must be integers or None or have an index 方法
不知道哪里出了问题。
谢谢大家
最佳答案
虽然我对 scikits 数据加载器不是很熟悉,但如果您使用的是 python3,您的错误可能与此无关。您应该进行整数除法,因为 []
运算符需要一个整数值。尝试使用除法运算符 //
,如果两个参数都是整数,它确保返回的值是一个整数,这基本上是 math.floor(a/b)
。在 python3 中,除法运算符 /
返回 float 而不是整数,无论 2 个参数是否都是整数。
努力改变
num_test/2
到
num_test//2
例子:
newsgroups_test.target[num_test//2:]
运算符//
在一些python2版本中也可用。
关于python-3.x - 来自 sklearn 的机器学习,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50919096/