Воспроизведение прогнозов LGMRegressor путем агрегирования значений вручную.Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Воспроизведение прогнозов LGMRegressor путем агрегирования значений вручную.

Сообщение Anonymous »

Я пытаюсь воспроизвести прогнозы LGMRegressor самостоятельно, поэтому, когда мне это удастся, я поменяю среднее значение на медиану. Но сейчас, похоже, я не могу.
Вот простой скрипт, который я создал, чтобы проверить, смогу ли я воспроизвести результаты.
Мне нужен reg_y_hat быть таким же, как self_y_hat.
чего мне не хватает? если я знаю, какие образцы в поезде попадают на каждый лист, я могу сам агрегировать прогноз...
import numpy as np
import lightgbm as lgb
from sklearn.model_selection import train_test_split

# Generate some random regression data
np.random.seed(42)
X = np.random.rand(100, 5)
y = 4 * X[:, 0] - 2 * X[:, 1] + np.random.rand(100) * 0.1

# Split the data
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# Train the LGBMRegressor
model = lgb.LGBMRegressor(objective='regression', n_estimators=10, learning_rate=0.1, random_state=42)
model.fit(X_train, y_train)

# Regular predict:
reg_y_hat = model.predict(X_test)

# Get the train leaf values
train_leaf_indices = model.predict(X_train, pred_leaf=True)
leaf_samples = {(i, leaf_id): [] for i in range(model.n_estimators) for leaf_id in np.unique(train_leaf_indices[:, i])}

# Store corresponding target values for each leaf
for i, row in enumerate(train_leaf_indices):
for j, leaf_id in enumerate(row):
leaf_samples[(j, leaf_id)].append(y_train)

# Compute avg for each leaf:
leaf_agg = {}
for key, values in leaf_samples.items():
leaf_agg[key] = np.mean(values)

# Predict by aggregating the mean values:
preds = []
test_leaf_indices = model.predict(X_test, pred_leaf=True)
for row_indices in test_leaf_indices:
row_pred = 0.0
for i, leaf_index in enumerate(row_indices):
row_pred += model.learning_rate * leaf_agg[(i, leaf_index)]
preds.append(row_pred)
self_y_hat = np.array(preds)


Подробнее здесь: https://stackoverflow.com/questions/793 ... the-values
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Воспроизведение прогнозов LGMRegressor путем агрегирования значений вручную.
    Anonymous » » в форуме Python
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • Воспроизведение прогнозов LGMRegressor путем агрегирования значений вручную.
    Anonymous » » в форуме Python
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Строки Dataframe в столбцы без значений для агрегирования [дубликат]
    Anonymous » » в форуме Python
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • Как использовать scipy для поиска пороговых значений с учетом прогнозов
    Anonymous » » в форуме Python
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Как получить общее количество сегментов для агрегирования сегментов?
    Гость » » в форуме Elasticsearch aggregation
    0 Ответы
    855 Просмотры
    Последнее сообщение Гость

Вернуться в «Python»