We have worked on various models and used them to predict the output. Here is one such model that is LightGBM which is an important model and can be used as Regressor and Classifier.
So this is the recipe on how we can use LightGBM Classifier and Regressor.
from sklearn import datasets
from sklearn import metrics
from sklearn.model_selection import train_test_split
import matplotlib.pyplot as plt
import seaborn as sns
plt.style.use('ggplot')
import lightgbm as ltb
We have imported all the modules that would be needed like metrics, datasets, ltb, train_test_split etc. We will see the use of each modules step by step further.
We have imported inbuilt wine dataset from the module datasets and stored the data in X and the target in y. We have also used train_test_split to split the dataset into two parts such that 30% of data is in test and rest in train.
dataset = datasets.load_wine()
X = dataset.data; y = dataset.target
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.30)
We have made an object for the model and fitted the train data. Then we have used the test data to test the model by predicting the output from the model for test data.
model = ltb.LGBMClassifier()
model.fit(X_train, y_train)
print(); print(model)
expected_y = y_test
predicted_y = model.predict(X_test)
Now We are calcutaing other scores for the model using classification_report and confusion matrix by passing expected and predicted values of target of test set.
print(metrics.classification_report(expected_y, predicted_y))
print(metrics.confusion_matrix(expected_y, predicted_y))
We have imported inbuilt boston dataset from the module datasets and stored the data in X and the target in y. We have also used train_test_split to split the dataset into two parts such that 30% of data is in test and rest in train.
dataset = datasets.load_boston()
X = dataset.data; y = dataset.target
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.30)
We have made an object for the model and fitted the train data. Then we have used the test data to test the model by predicting the output from the model for test data.
model = ltb.LGBMRegressor()
model.fit(X_train, y_train)
print(); print(model)
expected_y = y_test
predicted_y = model.predict(X_test)
Now We are calcutaing other scores for the model using r_2 score and mean_squared_log_error by passing expected and predicted values of target of test set.
print(metrics.r2_score(expected_y, predicted_y))
print(metrics.mean_squared_log_error(expected_y, predicted_y))
We are ploting the regressor model:
plt.figure(figsize=(10,10))
sns.regplot(expected_y, predicted_y, fit_reg=True, scatter_kws={"s": 100})
So the final output comes as:
LGBMClassifier(boosting_type='gbdt', class_weight=None, colsample_bytree=1.0, importance_type='split', learning_rate=0.1, max_depth=-1, min_child_samples=20, min_child_weight=0.001, min_split_gain=0.0, n_estimators=100, n_jobs=-1, num_leaves=31, objective=None, random_state=None, reg_alpha=0.0, reg_lambda=0.0, silent=True, subsample=1.0, subsample_for_bin=200000, subsample_freq=0) precision recall f1-score support 0 0.94 1.00 0.97 15 1 1.00 0.95 0.98 22 2 1.00 1.00 1.00 17 micro avg 0.98 0.98 0.98 54 macro avg 0.98 0.98 0.98 54 weighted avg 0.98 0.98 0.98 54 [[15 0 0] [ 1 21 0] [ 0 0 17]] LGBMRegressor(boosting_type='gbdt', class_weight=None, colsample_bytree=1.0, importance_type='split', learning_rate=0.1, max_depth=-1, min_child_samples=20, min_child_weight=0.001, min_split_gain=0.0, n_estimators=100, n_jobs=-1, num_leaves=31, objective=None, random_state=None, reg_alpha=0.0, reg_lambda=0.0, silent=True, subsample=1.0, subsample_for_bin=200000, subsample_freq=0) 0.8079584681584322 0.02837589562421279