python - ValueError:发现样本数量不一致的输入变量:[1, 137]
问题描述
我正在构建一个 Web 应用程序来使模型预测 User_input 值(在我的例子中是 9 个不同的特征滑块包含不同的值)并在最后显示结果和预测准确性。因此,当我尝试预测 User_input 而不是 X_test 时,会出现此错误: ValueError: Found input variables with contrast numbers of samples: [1, 137]
以下是我从用户那里得到的输入:
def dataset_input(dataset_name):
inputs = dict()
user_input1=st.slider("Clump Thickness", 1, 10, step=1)
user_input2=st.slider("Uniformity of Cell Size", 1, 10, step=1)
user_input3=st.slider("Uniformity of Cell Shape", 1, 10, step=1)
user_input4=st.slider("Marginal Adhesion", 1, 10, step=1)
user_input5=st.slider("Single Epithelial Cell Size", 1, 10, step=1)
user_input6=st.slider("Bare Nuclei", 1, 10, step = 1)
user_input7=st.slider("Bland Chromatin", 1, 10, step=1)
user_input8=st.slider("Normal Nucleoli", 1, 10, step=1)
user_input9=st.slider("Mitoses", 1, 10, step = 1)
inputs=[[user_input1, user_input2, user_input3, user_input4, user_input5,
user_input6, user_input7, user_input8, user_input9]]
return inputs
inputs = dataset_input(dataset_name)
然后我拆分数据并训练模型:
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.2, random_state=1234)
clf.fit(X_train, y_train)
之后我想显示用户输入的预测:
y_pred = clf.predict(inputs)
#print(inputs)
from sklearn.metrics import accuracy_score
acc = accuracy_score(y_pred, y_test)
print(acc)
如果我把 X_test 而不是(输入),它工作正常,但我想要 User_input。
此外,当我打印(输入)时,我得到一个预测值,这是一件好事,但我无法显示准确度得分。
这是数据集链接: https ://archive.ics.uci.edu/ml/datasets/breast+cancer+wisconsin+%28original%29
我将不胜感激!谢谢你。
编辑:我认为我有这个问题,因为我的 y_pred 有 137 个值,而(输入)只有一个值,所以我无法显示准确性。不幸的是 IDK 如何解决这个问题。
解决方案
您遇到该错误是因为您的X
和y
不具有相同的长度(这是 train_test_split 要求的),即X.shape[0] != y.shape[0]
.
要修复此错误:
删除额外的维度,然后X
通过运行转置以在和X = X.transpose()
中获得相等数量的样本。X
y
推荐阅读
- python - 无法将模型中的模块导入到同一文件夹中的 admin.py
- dynamic - 设备中的动态分配使内存复制失败
- tensorflow - 注意力机制/Tensorflow 教程
- javascript - javascript - 使用“另一个选择”选择下拉菜单
- amazon-web-services - 无法使用 aws cli 的 s3 模块从请求者复制存储桶到我自己的存储桶,而我可以很好地复制到我的机器
- javascript - 没有得到预期的结果 Node Fetch POST
- node.js - Adonis 查询生成器:条件计数
- http - 调用堆栈上的错误处理 - http 请求处理程序
- javascript - getuserMedia() - 不能在 localhost 上工作,因为它的来源不安全?
- javascript - 开发人员工具 - Internet Explorer 与 Chrome - 抓取