python - 如何从训练有素的模型中预测自定义值?
问题描述
我对 python 理解 ML 架构很陌生。
我设计了一个场景,训练了我的模型,我的测试结果按预期工作。我的测试数据中有大约 5 行我的问题是..如果我想测试单个记录并获得预测,我该怎么做?当我使用单个记录进行测试时出现以下错误
下面是我的代码示例和错误。请帮忙
import numpy as np
import pandas as pd
from sklearn.tree import DecisionTreeClassifier
dataset = pd.read_csv('MLData2.csv')
# Data:
#A 1 1
#A 1 1
#A 1 1
#A 2 1
#A 2 1
#B 3 3
#B 3 3
#B 3 3
#B 4 3
#B 5 3
#C 4 4
#C 1 4
#C 2 4
#C 3 4
X = dataset.iloc[:, :-1].values
y = dataset.iloc[:,2].values
#Encode data
from sklearn.preprocessing import LabelEncoder, OneHotEncoder
labelencoder_X = LabelEncoder()
X[:,0] = labelencoder_X.fit_transform(X[:,0])
X[:,1] = labelencoder_X.fit_transform(X[:,1])
#onehotencoder = OneHotEncoder(categorical_features = "all")
#X = onehotencoder.fit_transform(X).toarray()
#labelencoder_Y = LabelEncoder()
#y = labelencoder_Y.fit_transform(y)
#onehotencoder_y = OneHotEncoder(categorical_features = "all")
#y = np.reshape(y, (-1, 1))
#y = onehotencoder_y.fit_transform(y).toarray()
from sklearn.cross_validation import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size =
0.2, random_state = 42)
from sklearn.tree import DecisionTreeClassifier
classifier = DecisionTreeClassifier(criterion="entropy", random_state
= 42)
classifier.fit(X_train, y_train)
y_pred = classifier.predict(X_test)
sTest = np.reshape([0,3], (-1,1))
#I want to test model for inputs C 3, which should return 4. How to
test that?
y_pred1 = classifier.predict(sTest)
以下是收到的错误
ValueError: Number of features of the model must match the input. Model n_features is 2 and input n_features is 1
简而言之,我的输出应该始终是 A 的 1,B 的 3,C 的 4(在我的场景中)
解决方案
错误说:
ValueError: Number of features of the model must match the input. Model n_features is 2 and input n_features is 1
这意味着您对模型的输入与预期的形状不同。
您的模型需要 2D 样本,即 numpy 形状的(n_samples, n_features)
数组n_features=2
。在您的情况下,您想对单个样本进行测试,因此n_samples=1
. 你需要传递一个np.array
with shape (1, 2)
。尝试:
sTest = np.reshape([0,3], (1, -1))
推荐阅读
- javascript - 将多个值传递给 contextFunction 中定义的函数以更新反应中的上下文变量
- spring-boot - Spring Boot Thymeleaf & Flying Saucer PDF 正确显示带有连字符的 URL
- chat - Google 聊天机器人的服务器要求
- nginx - Nginx 不打开在 proxy_pass 中定义的路由以获取位置
- javascript - 如何使此代码用于许多输入
- go - 如何基于第一个命令行参数实现 num2hex 函数
- android - 如何在颤动中添加启动画面
- php - 将 wp_query 参数转换为 Visual Composer Post Grid 的查询字符串
- maven - Querydsl-sql 用 schema 指定表名
- javascript - 如何在新页面中打印html表格下一个缺失的列?