如何使用保存的机器学习模型测试新案例?

问题描述 投票:0回答:1

假设我有一个来自模型的 pickle 文件并将其加载到 python 中。然后,我如何测试一个新案例以获得模型是否表明该案例可能是两种输出可能性之一的结果?

我训练了一个逻辑回归模型 pima-印第安人-糖尿病数据集

import pandas as pd
from sklearn import model_selection
from sklearn.linear_model import LogisticRegression
import pickle

names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']
dataframe = pd.read_csv('pima-indians-diabetes.csv', names=names)
array = dataframe.values
X = array[:,0:8]
Y = array[:,8]

test_size = 0.33
seed = 7
X_train, X_test, Y_train, Y_test = model_selection.train_test_split(X, Y, test_size=test_size, random_state=seed)
model = LogisticRegression(max_iter=1000)
model.fit(X_train, Y_train)
filename = 'linear_regression_final.sav'
pickle.dump(model, open(filename, 'wb'))

之后我知道我可以稍后用这个加载模型:

loaded_model = pickle.load(open(filename, 'rb'))

(就我而言,我想在 django 中使用它,但这不会对我的问题产生影响)

假设我收到另一个带有必要医疗记录的病例,但不知道该人是否患有糖尿病。如何针对我的模型测试这些新数据?也许作为一个后续问题:案例是否需要模型拥有的每个数据点,或者我可以省略一些数据点吗?

python machine-learning pickle logistic-regression
1个回答
0
投票

当您将数据输入模型 (

X
) 时,其形状必须为
num_samples x num_features
。就您而言,听起来您想获得“单个”样本的预测。因此,测试数据的形状应该是1 x num_features
如果缺少某些特征,您需要以某种方式填充它们,否则模型将引发错误。该模型预计每个输入样本有 

num_features

列。

您可以从训练后的模型中获得预测,如下所示:

test_prediction = loaded_model.predict(test_case) test_probabilities = loaded_model.predict_proba(test_case)

© www.soinside.com 2019 - 2024. All rights reserved.