#scikit-learn #linear-regression
#scikit-learn #линейная регрессия
Вопрос:
Я установил линейную модель, используя sklearn.linear_model.LinearRegression
Давайте назовем это model
У меня есть список X_1, X_2, ..., X_n
И то, что я делаю, это предсказываю их каждый по одному, например:
for X_i in list:
model.predict(X_i)
Есть ли более быстрый способ сделать это? Может быть, я могу объединить все X_i вместе, а затем предсказать их все сразу?
Ответ №1:
Вы можете вызвать predict
с помощью a numpy.array
и получить обратно a 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.])
Ответ №2:
Предполагая X1 ... XN
, что это numpy
массивы, вы можете объединить их следующим образом:
X = np.concatenate((X1, X2, X3), axis=0)
И передайте этот массив в fit
/ predict
.