【问题标题】:How do I predict a specific row of data in scikit-learn?如何预测 scikit-learn 中的特定数据行?
【发布时间】:2022-07-19 21:31:25
【问题描述】:

我使用以下代码训练了一个模型

import pandas as pd
from sklearn.model_selection import train_test_split

data = pd.read_csv('sampledata.csv')

cols_to_use = ['OUNdif', 'UFMdif', 'Class']
X = data[cols_to_use]

y = data.W

X_train, X_valid, y_train, y_valid = train_test_split(X, y)

from xgboost import XGBClassifier

my_model = XGBClassifier(n_estimators=1000, learning_rate=0.05)
my_model.fit(X_train, y_train, 
             early_stopping_rounds=5, 
             eval_set=[(X_valid, y_valid)], 
             verbose=False)

from sklearn.metrics import accuracy_score

predictions = my_model.predict(X_valid)

现在,如果我要在底部添加一个新行 (#355),我将如何使用我现在训练的模型来预测该行? (不会意外将其用作训练数据的一部分)

【问题讨论】:

  • model.predict(X_valid[-1, :].reshape(1, -1))

标签: python scikit-learn


【解决方案1】:

您可以将OUNdif, UFMdif, Class 作为列表传递,即:[6, 5, 25] 然后只用这一行从一个 np 数组中预测值,并得到预测的第一个元素。

input_to_guess = [6,5,25]
print(my_model.predict(np.array(input_to_guess).reshape((1, -1)))[0])

它应该返回你想要的值

【讨论】:

    猜你喜欢
    • 2015-03-19
    • 2015-01-12
    • 2018-09-07
    • 2021-07-21
    • 2017-05-07
    • 2023-03-09
    • 2016-04-03
    • 2015-05-24
    • 2019-06-07
    相关资源
    最近更新 更多