Одновременные предсказания - PullRequest
3 голосов
/ 14 апреля 2019

Я установил линейную модель, используя sklearn.linear_model.LinearRegression

Давайте назовем это model

У меня есть список X_1, X_2, ..., X_n

И что я делаю, так это предсказываю их по одному:

for X_i in list:
    model.predict(X_i)

Есть ли более быстрый способ сделать это? Может быть, я смогу объединить все X_i вместе, а затем предсказать их все сразу?

Ответы [ 2 ]

2 голосов
/ 14 апреля 2019

Вы можете позвонить predict с numpy.array и получить numpy.array прогнозов:

Взгляните на этот MVCE, используя подгонку к нечетным числам X для y = 2X , чтобы предсказать четные числа X:

from sklearn.linear_model import LinearRegression
import numpy as np

X = [1, 3, 5, 7, 9]
y = [2, 6, 10, 14, 18]
lr = LinearRegression()
X = np.array(X)
# However, you need to reshape your X array to be 2-D instead of 1-D.
X = X[:, None]

lr.fit(X, y)

X_pred = [2, 4, 6, 8]
# Combine numpy array and reshape into one statement
X_pred = np.array(X_pred)[:, None] 

y_pred = lr.predict(X_pred)
y_pred

Выход:

array([4.,  8., 12., 16.])
1 голос
/ 14 апреля 2019

Предполагая, X1 ... XN являются numpy массивами, вы можете объединять их так:

X = np.concatenate((X1, X2, X3), axis=0) 

И передавать этот массив в fit / predict.

...