Почему функция Lightgbm .predict имеет значение пробы не от 0 до 1Python

Программы на Python
Ответить
Anonymous
 Почему функция Lightgbm .predict имеет значение пробы не от 0 до 1

Сообщение Anonymous »

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

Код: Выделить всё

# Import necessary libraries
import pandas as pd
from sklearn.metrics import f1_score
from sklearn.model_selection import train_test_split
from sklearn.metrics import f1_score, confusion_matrix
import lightgbm as lgb
import optuna
import mlflow
import mlflow.lightgbm

# Load Titanic dataset
titanic_data = pd.read_csv('titanic.csv')  # Assuming the dataset is stored in 'titanic.csv'

# Select specific features
selected_features = ['Pclass', 'Sex', 'Age', 'SibSp', 'Parch', 'Fare', 'Embarked', 'Survived']
titanic_data = titanic_data[selected_features]

# Convert categorical features to numerical using one-hot encoding
titanic_data = pd.get_dummies(titanic_data, columns=['Sex', 'Embarked'], drop_first=True)

# Extract features and target variable
X = titanic_data.drop('Survived', axis=1)
y = titanic_data['Survived']

# Split dataset
X_train, X_valid, y_train, y_valid = train_test_split(X, y, test_size=0.2, random_state=42)

# Train an initial LightGBM model
initial_model = lgb.train({}, lgb.Dataset(X_train, label=y_train), 100)

# Make predictions and calculate F1 score
y_pred_initial = initial_model.predict(X_valid)
f1_initial = f1_score(y_valid, (y_pred_initial > 0.5).astype(int))

# Display F1 Score and Confusion Matrix
print(f"Initial F1 Score: {f1_initial}")
print("Confusion Matrix:")
print(confusion_matrix(y_valid, (y_pred_initial > 0.5).astype(int)))

При печати y_pref_initials я получаю массив вероятностей с отрицательными значениями и значениями больше 1:
Пример:

Код: Выделить всё

array([ 0.01546079,  0.17557856,  0.22971758,  1.23292351,  0.60531331,
1.04524314,  0.7637124 ,  0.0458202 ,  0.63044718,  1.02387605,
0.6441506 ,  0.15202829,  0.06836975,  0.12113314,  0.19732339,
0.78233429,  0.37779053,  0.75745862,  0.29348834, -0.08458378,
-0.07173513,  0.73006681,  0.38585976,  0.09324021, -0.02912595,
-0.10779946,  0.22953974,  0.24480956])

==> Я хочу знать, почему вероятность здесь не между 0 и 1, пожалуйста


Подробнее здесь: https://stackoverflow.com/questions/793 ... en-0-and-1
Ответить

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

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

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

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

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