LightGBM -Kraftvariablen in Spaltungen sein

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: LightGBM -Kraftvariablen in Spaltungen sein

by Anonymous » 13 Feb 2025, 05:23

Ich versuche, einen Weg zu finden, um ein LightGBM -Modell zu trainieren, das zwingt, einige Merkmale in den Spaltungen zu haben, d. H. "Um in der Merkmals Bedeutung zu sein", dann werden die Vorhersagen durch diese Variablen erreicht. < BR /> Hier ist ein Beispiel für einen Modellierungscode mit einer Usless -Variablen, da es konstant ist, aber die Idee ist, dass es aus der Perspektive der geschäftlichen Perspektive eine wichtige Variable geben kann, die nicht in der Funktion < /p>

Code: Select all

from lightgbm import LGBMRegressor
import pandas as pd
import numpy as np
from sklearn.datasets import make_regression
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error

# Generar un dataset de regresión aleatorio
X, y = make_regression(n_samples=1000, n_features=10, noise=0.9, random_state=42)
feature_names = [f"feature_{i}" for i in range(X.shape[1])]

# Convertir a DataFrame para mayor legibilidad
X = pd.DataFrame(X, columns=feature_names)

# Agregar características inútiles
X["useless_feature_1"] = 1

# Dividir los datos en conjuntos de entrenamiento y prueba
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# Definir el modelo LGBMRegressor
model = LGBMRegressor(
objective="regression",
metric="rmse",
random_state=1,
n_estimators=100
)

# Entrenar el modelo
model.fit(X_train, y_train, eval_set=[(X_test, y_test)])

# Predicciones y evaluación
y_pred = model.predict(X_test)
rmse = np.sqrt(mean_squared_error(y_test, y_pred))
print(f"Test RMSE: {rmse:.4f}")

# Importancia de características
importance = pd.DataFrame({
"feature": X.columns,
"importance": model.feature_importances_
}).sort_values(by="importance", ascending=False)

print("\nFeature Importance:")
print(importance)
Erwartete Lösung: Es sollte einige Workround geben, aber die interessanteste wäre diejenige, die einen Param in der Anpassung oder in der Regressormethode verwendet.

Top