import numpy as np import pandas as pd from sklearn import metrics from sklearn.metrics import f1_score, precision_score, recall_score from sklearn.model_selection import train_test_split from sklearn.preprocessing import LabelEncoder from lightgbm import LGBMClassifier # Convert target variable to numeric df['Credit_Score'] = df['Credit_Score'].str.replace('Good', '3', n=-1) df['Credit_Score'] = df['Credit_Score'].str.replace('Standard', '2', n=-1) df['Credit_Score'] = df['Credit_Score'].str.replace('Poor', '1', n=-1) df['Credit_Score'] = df[['Credit_Score']].apply(pd.to_numeric) # Split the dataset X=df.loc[:, df.columns != 'Credit_Score'] Y=df['Credit_Score'] x_train, x_test, y_train, y_test = train_test_split(X, Y, test_size=0.25) # Train the LightGBM model lgbm = LGBMClassifier() lgbm.fit(x_train, y_train) y_pred = lgbm.predict(x_test) # Print performance metrics print('F1 score: %.3f' % f1_score(y_test, y_pred, average='weighted')) print('Precision: %.3f' % precision_score(y_test, y_pred, average='weighted')) print('Recall: %.3f' % recall_score(y_test, y_pred, average='weighted'))