- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我是新手,所以需要任何帮助,当我要求一个例子时,我的教授给我了这段代码,我希望有一个工作模型......
from numpy import loadtxt
import numpy as np
from sklearn import svm
from sklearn.metrics import accuracy_score, f1_score
from sklearn.feature_selection import SelectPercentile, f_classif
读取数据
data = loadtxt('running.txt')
label = loadtxt('walking.txt')
X = data
y = label
定义行走状态为0,运行状态为1
print('Class labels:', np.unique(y))
随机抽取50%数据作为测试数据,其余作为训练数据
from sklearn.cross_validation import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.5)
使用sklearn选择50%的特征
selector = SelectPercentile(f_classif, 50)
selector.fit(X_train, y_train)
X_train_transformed = selector.transform(X_train)
X_test_transformed = selector.transform(X_test)
应用支持向量机算法
clf = svm.SVC(kernel="rbf", C=1)
clf.fit(X_train_transformed, y_train)
SVC(C=1, cache_size=200, class_weight=None, coef0=0.0, decision_function_shape=None, degree=3, gamma='auto', kernel='rbf',max_iter=-1,probability=False, random_state=None, shrinking=True,tol=0.001, verbose=False)
pred=clf.predict(X_test_transformed)
print("Accuracy is %.4f and the f1-score is %.4f " %
(accuracy_score(pred, y_test), f1_score(y_test, pred)))
Traceback (most recent call last): File "", line 1, in File "C:\Users\praym\Anaconda3\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 714, in runfile execfile(filename, namespace) File "C:\Users\praym\Anaconda3\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 89, in execfile exec(compile(f.read(), filename, 'exec'), namespace) File "C:/Users/praym/OneDrive/School/Information Structres/Assignment4.py", line 18, in selector.fit(X_train, y_train) File "C:\Users\praym\Anaconda3\lib\site-packages\sklearn\feature_selection\univariate_selection.py", line 322, in fit X, y = check_X_y(X, y, ['csr', 'csc']) File "C:\Users\praym\Anaconda3\lib\site-packages\sklearn\utils\validation.py", line 515, in check_X_y y = column_or_1d(y, warn=True) File "C:\Users\praym\Anaconda3\lib\site-packages\sklearn\utils\validation.py", line 551, in column_or_1d raise ValueError("bad input shape {0}".format(shape)) ValueError: bad input shape (10, 90)
最佳答案
我会将此作为答案提交,因为它直接解决了您的实际问题。
在一般的计算机编程术语中,您遇到的错误称为堆栈跟踪。有一个 Wikipedia page在堆栈跟踪上,但我会在这里尝试用更简单的术语来解释它。
该错误的标题为“Traceback”,因为这就是它所做的 - 追溯错误。您可以在 Python 脚本中看到每一行都是某种 API 调用,无论是 loadtxt
还是 print
或 fit
。如果在调用 loadtxt
时发生错误,Traceback 会在 loadtxt
调用中向您显示到底出了什么问题。该函数可能正在调用 API 中的其他函数,因此您会看到“踪迹”。当您编写包含许多函数和类的更复杂的 Python 代码时,您可能最终会看到调用其他函数的函数,这些函数都是您编写的。因此,
行号会将您带到代码中实际导致错误的位置。通常情况下,只需要调用最底层的 1 次或 2 次就可以解决一般问题。如果您编写自己的自定义 API,那么整个跟踪可能会变得更有用。但是,仅文件名和行号不足以有效地调试任何程序。
ValueError
。这通常意味着您的变量值与变量类型不匹配。但是,异常类型后面的句子为您提供了有关导致此 ValueError
的确切原因的更多详细信息。 有关每种异常类型及其含义的更多详细信息,请阅读有关 built-in exceptions 的文档.此外,您可以从教程中了解更多有关如何处理此类异常的信息 here .
通过重复这些步骤,您将能够有效地调试您自己的程序。请注意,调试不仅是一种从程序中删除错误的方法。它是单步执行您的代码并确定每一行在做什么并将其与它们应该做什么进行比较的能力。它是所谓的计算机编程的基础。如果你做得对,你可能还有问题要问,但你的问题会有所改善。这就是 Stack Overflow 出现的时候(请注意,该网站的名称本身就是对堆栈跟踪概念的一种演绎)。
编辑:在你的堆栈跟踪中,你的错误在这里:
文件“C:/Users/praym/OneDrive/School/Information Structres/Assignment4.py”,第 18 行,在 selector.fit(X_train, y_train) 中。
您的输入变量 X_train 和 y_train 中的一个或两个似乎不是该拟合函数可接受的形状。
编辑:如果您按照自己的方式加载文件,则无法获得正确的 X_train 和 y_train 变量。您似乎有两种类型的数据,一种用于步行,一种用于运行。它们都是数据。步行数据中的每个条目都应该有一个标签“步行”,而运行数据中的每个条目都应该有一个标签“运行”。
现在,这是数据挖掘的基础。您需要知道数据和标签的含义。
关于python - 引发 ValueError ("bad input shape {0}".format(shape)) ValueError : bad input shape (10, 90),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38642046/
我有两个文本输入元素 A 和 B。 我希望用户能够从 A 中选择部分或全部文本并拖动到 B,但文本不会从 A 中消失。 假设“A”包含“quick brown fox”,用户突出显示“fox”一词并将
我正在一个网站上工作,如果在提交表单之前数字不在最小值和最大值之间,我希望数字输入能够自行更正。我的代码如下: HTML: JavaScript: function CorrectOverUnder
在检查输入值是否存在并将其分配给变量时,我看到了两种实现此目的的方法: if(Input::has('id')) { $id = Input::get('id'); // do som
我意识到 有一个 border-box盒子模型,而有一个 content-box盒子模型。此行为存在于 IE8 和 FF 中。不幸的是,这使我无法将这种样式应用于大小均匀的输入: input, tex
在 Polymer 文档 ( https://elements.polymer-project.org/elements/iron-input ) 中,我发现: 而在另一个官方文档(https://
我使用 jquery 添加/删除输入 我使用append为日期/收入添加多个Tr 我还使用另一个附加来添加多个 td 以获取同一日期 Tr 中的收入 我添加多个日期输入,并在此表中添加多个收入输入 我
Python3 的 input() 似乎在两次调用 input() 之间采用旧的 std 输入。有没有办法忽略旧输入,只接受新输入(在 input() 被调用之后)? import time a =
在一些教程中,我看到了这些选择器: $(':input'); 或 $('input'); 注意“:”。 有什么不同吗? 最佳答案 $('input') = 仅包含元素名称,仅选择 HTML 元素。 $
我有下一个 html 表单: Nombre: El nombre es obligatorio. Solo se pe
有两种方法可以在组件上定义输入: @Component({ inputs: ['displayEntriesCount'], ... }) export class MyTable i
input: dynamic input is missing dimensions in profile onnx2trt代码报错: import numpy as np import tensor
所以,我有允许两个输入的代码: a, b = input("Enter a command: ").split() if(a == 'hello'): print("Hi") elif(a =
我有一个与用户交流的程序。我正在使用 input() 从用户那里获取数据,但是,我想告诉用户,例如,如果用户输入脏话,我想打印 You are swearing!立即删除它! 而 用户正在输入。 如您
我在运行 J2ME 应用程序时遇到了一些严重的内存问题。 所以我建立了另一个步骤来清除巨大的输入字符串并处理它的数据并清除它。但直到我设置 input = null 而不是 input = "" 才解
我想在我的 android 虚拟设备中同时启用软输入和硬键盘。我知道如何两者兼得,但不会两者。 同时想要BOTH的原因: 软输入:预览当键盘缩小屏幕时布局如何调整大小 硬键盘:显然是快速输入。 提前致
我有一个邮政编码字段,在 keyup 上我执行了一个 ajax 调用。如果没有可用的邮政编码,那么我想添加类“input-invalid”。但问题是,在我单击输入字段的外部 某处之前,红色边框验证不会
根据我的理解使用 @Input() name: string; 并在组件装饰器中使用输入数组,如下所示 @Component({ ... inputs:
我有一段代码是这样的 @Component({ selector: 'control-messages', inputs: ['controlName: control'],
在@component中, @input 和@output 属性代表什么以及它们的用途是什么? 什么是指令,为什么我们必须把指令放在下面的结构中? directives:[CORE_DIRECTIVE
有没有一种方法可以测试变量是否会使SAS中的INPUT转换过程失败?或者,是否可以避免生成的“NOTE:无效参数”消息? data _null_; format test2 date9.; inp
我是一名优秀的程序员,十分优秀!