Python 如何解决这个问题;不能被视为有效的集合";
我正在运行下面的代码,但我得到一个可能来自这行代码的错误Python 如何解决这个问题;不能被视为有效的集合";,python,django,scikit-learn,Python,Django,Scikit Learn,我正在运行下面的代码,但我得到一个可能来自这行代码的错误 X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=random_state, test_size=test_size) 我在这个平台上发现了类似的问题,但提供的解决方案与我的问题不符。显示的错误是: Singleton array array(0) cannot be considered a valid collection 请帮助我 @pe
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=random_state, test_size=test_size)
我在这个平台上发现了类似的问题,但提供的解决方案与我的问题不符。显示的错误是:
Singleton array array(0) cannot be considered a valid collection
请帮助我
@permission_required('admin.can_add_log_entry')
def upload_file(request):
template='upload_file.html'
if request.method == 'GET':
return render(request, template)
CSV_file=request.FILES['csv_file']
if not CSV_file.name.endswith('.csv'):
messages.error(request, 'This is not a CSV file')
# return HttpResponseRedirect(reverse('add_pull_requests'))
data_set=CSV_file.read().decode('UTF-8')
io_string=StringIO(data_set)
next(io_string)
dataset=csv.reader(io_string, skipinitialspace=True, delimiter=',')
csv_list=list(dataset)
# prediction_dataset=[]
for row in csv_list:
if row[11]=='Non-Reopened':
row[11]=0
else:
row[11] = 1
if row[9]=='Rejected':
row[9]=0
else:
row[9]=1
prediction_dataset = [row[3], row[4], row[5], row[6], row[7], row[8], row[9], row[10]]
X = [prediction_dataset]
y = row[11]
print(X)
print(y)
test_size = 0.2
random_state = 5
clf = tree.DecisionTreeClassifier()
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=random_state, test_size=test_size)
# clf = tree.DecisionTreeClassifier()
clf = clf.fit(X_train, y_train)
# y_pred = clf.predict(X_test)
print(accuracy= accuracy_score(y_test,y_pred)*100)
return render(request, template,{"csv_list": csv_list})
我首先解决了这个问题,
import pandas as pd
,然后替换这行代码dataset=csv.reader(io\u字符串,skipinitialspace=True,delimiter=',')
bydataset=pd.read\u csv(csv\u文件)
。因此,它现在正在发挥作用
谢谢显示错误的完整堆栈跟踪。问题似乎出在
X=[prediction\u dataset]
中。你认为这里发生了什么?执行打印(X)和打印(y)时会得到什么?单例数组(0)不能被视为有效集合。这就是我得到的错误。很抱歉,忘记显示错误的完整堆栈跟踪。@Vivek Kumar,请问有什么进展吗?@Vivek Kumar,y是我的数据集预测的目标列,X是我的数据集剩余列的列表。因此,打印这两个列表只是为了确保它们不是空的。prediction\u数据集
是在for循环之外分配的。因此将只包含一个条目(for循环中的最后一个条目)。您使用它生成X,因此X
只有一个样本。您不能在单行上执行列车测试\u拆分
。