From 82711a46bdef6d1b01c3342b4c09ccb4562863c8 Mon Sep 17 00:00:00 2001 From: Archisman Karmakar <92569441+ArchismanKarmakar@users.noreply.github.com> Date: Fri, 4 Oct 2024 23:20:51 +0530 Subject: [PATCH 01/13] Create lgbm_classifier.py Adding LGBM Classifier Script for this repository. --- machine_learning/lgbm_classifier.py | 72 +++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 machine_learning/lgbm_classifier.py diff --git a/machine_learning/lgbm_classifier.py b/machine_learning/lgbm_classifier.py new file mode 100644 index 000000000000..eea133ee66b7 --- /dev/null +++ b/machine_learning/lgbm_classifier.py @@ -0,0 +1,72 @@ +# LGBM Classifier Example +import numpy as np +from matplotlib import pyplot as plt +from sklearn.datasets import load_iris +from sklearn.metrics import ConfusionMatrixDisplay +from sklearn.model_selection import train_test_split +from lightgbm import LGBMClassifier + + +def data_handling(data: dict) -> tuple: + """ + Splits dataset into features and target labels. + + >>> data_handling({'data': '[5.1, 3.5, 1.4, 0.2]', 'target': [0]}) + ('[5.1, 3.5, 1.4, 0.2]', [0]) + >>> data_handling({'data': '[4.9, 3.0, 1.4, 0.2], [4.7, 3.2, 1.3, 0.2]', 'target': [0, 0]}) + ('[4.9, 3.0, 1.4, 0.2], [4.7, 3.2, 1.3, 0.2]', [0, 0]) + """ + return data["data"], data["target"] + + +def lgbm_classifier(features: np.ndarray, target: np.ndarray) -> LGBMClassifier: + """ + Trains an LGBM Classifier on the given features and target labels. + + >>> lgbm_classifier(np.array([[5.1, 3.6, 1.4, 0.2]]), np.array([0])) + LGBMClassifier() + """ + classifier = LGBMClassifier() + classifier.fit(features, target) + return classifier + + +def main() -> None: + """ + Main function to demonstrate LGBM classification on the Iris dataset. + + URL for LightGBM documentation: + https://lightgbm.readthedocs.io/en/latest/ + """ + # Load the Iris dataset + iris = load_iris() + features, targets = data_handling(iris) + + # Split the dataset into training and testing sets + x_train, x_test, y_train, y_test = train_test_split( + features, targets, test_size=0.25, random_state=42 + ) + + # Class names for display + names = iris["target_names"] + + # Train the LGBM classifier + lgbm_clf = lgbm_classifier(x_train, y_train) + + # Display the confusion matrix for the classifier + ConfusionMatrixDisplay.from_estimator( + lgbm_clf, + x_test, + y_test, + display_labels=names, + cmap="Blues", + normalize="true", + ) + plt.title("Normalized Confusion Matrix - IRIS Dataset") + plt.show() + + +if __name__ == "__main__": + import doctest + doctest.testmod(verbose=True) + main() From 3d46dd09e4fe5e67cea6588ba00c19f249e2335b Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Fri, 4 Oct 2024 17:55:31 +0000 Subject: [PATCH 02/13] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- machine_learning/lgbm_classifier.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/machine_learning/lgbm_classifier.py b/machine_learning/lgbm_classifier.py index eea133ee66b7..e00133efea00 100644 --- a/machine_learning/lgbm_classifier.py +++ b/machine_learning/lgbm_classifier.py @@ -34,19 +34,19 @@ def lgbm_classifier(features: np.ndarray, target: np.ndarray) -> LGBMClassifier: def main() -> None: """ Main function to demonstrate LGBM classification on the Iris dataset. - + URL for LightGBM documentation: https://lightgbm.readthedocs.io/en/latest/ """ # Load the Iris dataset iris = load_iris() features, targets = data_handling(iris) - + # Split the dataset into training and testing sets x_train, x_test, y_train, y_test = train_test_split( features, targets, test_size=0.25, random_state=42 ) - + # Class names for display names = iris["target_names"] @@ -68,5 +68,6 @@ def main() -> None: if __name__ == "__main__": import doctest + doctest.testmod(verbose=True) main() From e3086a86cd2c21b9e2e0487130079f48dc5458ff Mon Sep 17 00:00:00 2001 From: Archisman Karmakar <92569441+ArchismanKarmakar@users.noreply.github.com> Date: Fri, 4 Oct 2024 23:34:24 +0530 Subject: [PATCH 03/13] Create lgbm_regressor.py --- machine_learning/lgbm_regressor.py | 64 ++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 machine_learning/lgbm_regressor.py diff --git a/machine_learning/lgbm_regressor.py b/machine_learning/lgbm_regressor.py new file mode 100644 index 000000000000..7ca86bd99883 --- /dev/null +++ b/machine_learning/lgbm_regressor.py @@ -0,0 +1,64 @@ +# LGBM Regressor Example using Bank Marketing Dataset +import numpy as np +from sklearn.datasets import fetch_openml +from sklearn.metrics import mean_absolute_error, mean_squared_error +from sklearn.model_selection import train_test_split +from lightgbm import LGBMRegressor + + +def data_handling(data: dict) -> tuple: + # Split dataset into features and target. Data is features. + """ + >>> data_handling(( + ... {'data':'[0.12, 0.02, 0.01, 0.25, 0.09]', + ... 'target':([1])})) + ('[0.12, 0.02, 0.01, 0.25, 0.09]', [1]) + """ + return (data["data"], data["target"]) + + +def lgbm_regressor( + features: np.ndarray, target: np.ndarray, test_features: np.ndarray +) -> np.ndarray: + """ + >>> lgbm_regressor(np.array([[ 0.12, 0.02, 0.01, 0.25, 0.09]]), np.array([1]), + ... np.array([[0.11, 0.03, 0.02, 0.28, 0.08]])) + array([[0.98]], dtype=float32) + """ + lgbm = LGBMRegressor( + verbosity=0, random_state=42 + ) + lgbm.fit(features, target) + # Predict target for test data + predictions = lgbm.predict(test_features) + predictions = predictions.reshape(len(predictions), 1) + return predictions + + +def main() -> None: + """ + The URL for this algorithm: + https://lightgbm.readthedocs.io/en/latest/ + Bank Marketing Dataset is used to demonstrate the algorithm. + + Expected error values: + Mean Absolute Error: 0.2 (approx.) + Mean Square Error: 0.15 (approx.) + """ + # Load Bank Marketing dataset + bank_data = fetch_openml(name='bank-marketing', version=1, as_frame=False) + data, target = data_handling(bank_data) + x_train, x_test, y_train, y_test = train_test_split( + data, target, test_size=0.25, random_state=1 + ) + predictions = lgbm_regressor(x_train, y_train, x_test) + # Error printing + print(f"Mean Absolute Error: {mean_absolute_error(y_test, predictions)}") + print(f"Mean Square Error: {mean_squared_error(y_test, predictions)}") + + +if __name__ == "__main__": + import doctest + + doctest.testmod(verbose=True) + main() From 3e93a6ce0d502a504f638fbf1c7abef7b108814e Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Fri, 4 Oct 2024 18:04:46 +0000 Subject: [PATCH 04/13] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- machine_learning/lgbm_regressor.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/machine_learning/lgbm_regressor.py b/machine_learning/lgbm_regressor.py index 7ca86bd99883..387e2c89f743 100644 --- a/machine_learning/lgbm_regressor.py +++ b/machine_learning/lgbm_regressor.py @@ -25,9 +25,7 @@ def lgbm_regressor( ... np.array([[0.11, 0.03, 0.02, 0.28, 0.08]])) array([[0.98]], dtype=float32) """ - lgbm = LGBMRegressor( - verbosity=0, random_state=42 - ) + lgbm = LGBMRegressor(verbosity=0, random_state=42) lgbm.fit(features, target) # Predict target for test data predictions = lgbm.predict(test_features) @@ -46,7 +44,7 @@ def main() -> None: Mean Square Error: 0.15 (approx.) """ # Load Bank Marketing dataset - bank_data = fetch_openml(name='bank-marketing', version=1, as_frame=False) + bank_data = fetch_openml(name="bank-marketing", version=1, as_frame=False) data, target = data_handling(bank_data) x_train, x_test, y_train, y_test = train_test_split( data, target, test_size=0.25, random_state=1 From daf0f8bb9903bcbd285789985f1e060d31ed46b9 Mon Sep 17 00:00:00 2001 From: Archisman Karmakar <92569441+ArchismanKarmakar@users.noreply.github.com> Date: Fri, 4 Oct 2024 23:42:06 +0530 Subject: [PATCH 05/13] Update lgbm_classifier.py --- machine_learning/lgbm_classifier.py | 56 ++++++++++++----------------- 1 file changed, 23 insertions(+), 33 deletions(-) diff --git a/machine_learning/lgbm_classifier.py b/machine_learning/lgbm_classifier.py index e00133efea00..1b2f3f34ed58 100644 --- a/machine_learning/lgbm_classifier.py +++ b/machine_learning/lgbm_classifier.py @@ -1,68 +1,58 @@ -# LGBM Classifier Example +# LGBM Classifier Example using Bank Marketing Dataset import numpy as np from matplotlib import pyplot as plt -from sklearn.datasets import load_iris +from sklearn.datasets import fetch_openml from sklearn.metrics import ConfusionMatrixDisplay from sklearn.model_selection import train_test_split from lightgbm import LGBMClassifier def data_handling(data: dict) -> tuple: + # Split dataset into features and target. Data is features. """ - Splits dataset into features and target labels. - - >>> data_handling({'data': '[5.1, 3.5, 1.4, 0.2]', 'target': [0]}) - ('[5.1, 3.5, 1.4, 0.2]', [0]) - >>> data_handling({'data': '[4.9, 3.0, 1.4, 0.2], [4.7, 3.2, 1.3, 0.2]', 'target': [0, 0]}) - ('[4.9, 3.0, 1.4, 0.2], [4.7, 3.2, 1.3, 0.2]', [0, 0]) + >>> data_handling(( + ... {'data':'[0.12, 0.02, 0.01, 0.25, 0.09]', + ... 'target':([1])})) + ('[0.12, 0.02, 0.01, 0.25, 0.09]', [1]) """ - return data["data"], data["target"] + return (data["data"], data["target"]) def lgbm_classifier(features: np.ndarray, target: np.ndarray) -> LGBMClassifier: """ - Trains an LGBM Classifier on the given features and target labels. - - >>> lgbm_classifier(np.array([[5.1, 3.6, 1.4, 0.2]]), np.array([0])) - LGBMClassifier() + >>> lgbm_classifier(np.array([[0.12, 0.02, 0.01, 0.25, 0.09]]), np.array([1])) + LGBMClassifier(...) """ - classifier = LGBMClassifier() + classifier = LGBMClassifier(random_state=42) classifier.fit(features, target) return classifier def main() -> None: """ - Main function to demonstrate LGBM classification on the Iris dataset. - - URL for LightGBM documentation: + The URL for this algorithm: https://lightgbm.readthedocs.io/en/latest/ + Bank Marketing Dataset is used to demonstrate the algorithm. """ - # Load the Iris dataset - iris = load_iris() - features, targets = data_handling(iris) - - # Split the dataset into training and testing sets + # Load Bank Marketing dataset + bank_data = fetch_openml(name='bank-marketing', version=1, as_frame=False) + data, target = data_handling(bank_data) x_train, x_test, y_train, y_test = train_test_split( - features, targets, test_size=0.25, random_state=42 + data, target, test_size=0.25, random_state=1 ) + # Create an LGBM Classifier from the training data + lgbm_classifier_model = lgbm_classifier(x_train, y_train) - # Class names for display - names = iris["target_names"] - - # Train the LGBM classifier - lgbm_clf = lgbm_classifier(x_train, y_train) - - # Display the confusion matrix for the classifier + # Display the confusion matrix of the classifier ConfusionMatrixDisplay.from_estimator( - lgbm_clf, + lgbm_classifier_model, x_test, y_test, - display_labels=names, + display_labels=['No', 'Yes'], cmap="Blues", normalize="true", ) - plt.title("Normalized Confusion Matrix - IRIS Dataset") + plt.title("Normalized Confusion Matrix - Bank Marketing Dataset") plt.show() From 6c5fbdc9c2cc125c2fe7378e74670febcdd7572f Mon Sep 17 00:00:00 2001 From: Archisman Karmakar <92569441+ArchismanKarmakar@users.noreply.github.com> Date: Fri, 4 Oct 2024 23:42:27 +0530 Subject: [PATCH 06/13] Update lgbm_regressor.py --- machine_learning/lgbm_regressor.py | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/machine_learning/lgbm_regressor.py b/machine_learning/lgbm_regressor.py index 387e2c89f743..6db18abf5e3d 100644 --- a/machine_learning/lgbm_regressor.py +++ b/machine_learning/lgbm_regressor.py @@ -17,15 +17,14 @@ def data_handling(data: dict) -> tuple: return (data["data"], data["target"]) -def lgbm_regressor( - features: np.ndarray, target: np.ndarray, test_features: np.ndarray -) -> np.ndarray: +def lgbm_regressor(features: np.ndarray, target: np.ndarray, + test_features: np.ndarray) -> np.ndarray: """ - >>> lgbm_regressor(np.array([[ 0.12, 0.02, 0.01, 0.25, 0.09]]), np.array([1]), - ... np.array([[0.11, 0.03, 0.02, 0.28, 0.08]])) + >>> lgbm_regressor(np.array([[0.12, 0.02, 0.01, 0.25, 0.09]]), + ... np.array([1]), np.array([[0.11, 0.03, 0.02, 0.28, 0.08]])) array([[0.98]], dtype=float32) """ - lgbm = LGBMRegressor(verbosity=0, random_state=42) + lgbm = LGBMRegressor(random_state=42) lgbm.fit(features, target) # Predict target for test data predictions = lgbm.predict(test_features) @@ -38,13 +37,9 @@ def main() -> None: The URL for this algorithm: https://lightgbm.readthedocs.io/en/latest/ Bank Marketing Dataset is used to demonstrate the algorithm. - - Expected error values: - Mean Absolute Error: 0.2 (approx.) - Mean Square Error: 0.15 (approx.) """ # Load Bank Marketing dataset - bank_data = fetch_openml(name="bank-marketing", version=1, as_frame=False) + bank_data = fetch_openml(name='bank-marketing', version=1, as_frame=False) data, target = data_handling(bank_data) x_train, x_test, y_train, y_test = train_test_split( data, target, test_size=0.25, random_state=1 From e9dc1aae421dba99dc80042354ae67e5ef3523f3 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Fri, 4 Oct 2024 18:12:27 +0000 Subject: [PATCH 07/13] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- machine_learning/lgbm_classifier.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/machine_learning/lgbm_classifier.py b/machine_learning/lgbm_classifier.py index 1b2f3f34ed58..bb1fbdbf39e8 100644 --- a/machine_learning/lgbm_classifier.py +++ b/machine_learning/lgbm_classifier.py @@ -35,7 +35,7 @@ def main() -> None: Bank Marketing Dataset is used to demonstrate the algorithm. """ # Load Bank Marketing dataset - bank_data = fetch_openml(name='bank-marketing', version=1, as_frame=False) + bank_data = fetch_openml(name="bank-marketing", version=1, as_frame=False) data, target = data_handling(bank_data) x_train, x_test, y_train, y_test = train_test_split( data, target, test_size=0.25, random_state=1 @@ -48,7 +48,7 @@ def main() -> None: lgbm_classifier_model, x_test, y_test, - display_labels=['No', 'Yes'], + display_labels=["No", "Yes"], cmap="Blues", normalize="true", ) From e9425d7423a0fa8f50f9258c9c55912b09855aa3 Mon Sep 17 00:00:00 2001 From: Archisman Karmakar <92569441+ArchismanKarmakar@users.noreply.github.com> Date: Fri, 4 Oct 2024 23:45:12 +0530 Subject: [PATCH 08/13] Update lgbm_classifier.py --- machine_learning/lgbm_classifier.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/machine_learning/lgbm_classifier.py b/machine_learning/lgbm_classifier.py index bb1fbdbf39e8..1b2f3f34ed58 100644 --- a/machine_learning/lgbm_classifier.py +++ b/machine_learning/lgbm_classifier.py @@ -35,7 +35,7 @@ def main() -> None: Bank Marketing Dataset is used to demonstrate the algorithm. """ # Load Bank Marketing dataset - bank_data = fetch_openml(name="bank-marketing", version=1, as_frame=False) + bank_data = fetch_openml(name='bank-marketing', version=1, as_frame=False) data, target = data_handling(bank_data) x_train, x_test, y_train, y_test = train_test_split( data, target, test_size=0.25, random_state=1 @@ -48,7 +48,7 @@ def main() -> None: lgbm_classifier_model, x_test, y_test, - display_labels=["No", "Yes"], + display_labels=['No', 'Yes'], cmap="Blues", normalize="true", ) From 69ec309f1a84e8d4e5ee28dea9818acffa6c8c61 Mon Sep 17 00:00:00 2001 From: Archisman Karmakar <92569441+ArchismanKarmakar@users.noreply.github.com> Date: Fri, 4 Oct 2024 23:45:28 +0530 Subject: [PATCH 09/13] Update lgbm_regressor.py --- machine_learning/lgbm_regressor.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/machine_learning/lgbm_regressor.py b/machine_learning/lgbm_regressor.py index 6db18abf5e3d..b954d7101208 100644 --- a/machine_learning/lgbm_regressor.py +++ b/machine_learning/lgbm_regressor.py @@ -17,10 +17,10 @@ def data_handling(data: dict) -> tuple: return (data["data"], data["target"]) -def lgbm_regressor(features: np.ndarray, target: np.ndarray, +def lgbm_regressor(features: np.ndarray, target: np.ndarray, test_features: np.ndarray) -> np.ndarray: """ - >>> lgbm_regressor(np.array([[0.12, 0.02, 0.01, 0.25, 0.09]]), + >>> lgbm_regressor(np.array([[0.12, 0.02, 0.01, 0.25, 0.09]]), ... np.array([1]), np.array([[0.11, 0.03, 0.02, 0.28, 0.08]])) array([[0.98]], dtype=float32) """ From 75ff08150e02e607af65a351d5e488f79b11aa44 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Fri, 4 Oct 2024 18:16:29 +0000 Subject: [PATCH 10/13] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- machine_learning/lgbm_classifier.py | 4 ++-- machine_learning/lgbm_regressor.py | 7 ++++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/machine_learning/lgbm_classifier.py b/machine_learning/lgbm_classifier.py index 1b2f3f34ed58..bb1fbdbf39e8 100644 --- a/machine_learning/lgbm_classifier.py +++ b/machine_learning/lgbm_classifier.py @@ -35,7 +35,7 @@ def main() -> None: Bank Marketing Dataset is used to demonstrate the algorithm. """ # Load Bank Marketing dataset - bank_data = fetch_openml(name='bank-marketing', version=1, as_frame=False) + bank_data = fetch_openml(name="bank-marketing", version=1, as_frame=False) data, target = data_handling(bank_data) x_train, x_test, y_train, y_test = train_test_split( data, target, test_size=0.25, random_state=1 @@ -48,7 +48,7 @@ def main() -> None: lgbm_classifier_model, x_test, y_test, - display_labels=['No', 'Yes'], + display_labels=["No", "Yes"], cmap="Blues", normalize="true", ) diff --git a/machine_learning/lgbm_regressor.py b/machine_learning/lgbm_regressor.py index b954d7101208..a47bad125bef 100644 --- a/machine_learning/lgbm_regressor.py +++ b/machine_learning/lgbm_regressor.py @@ -17,8 +17,9 @@ def data_handling(data: dict) -> tuple: return (data["data"], data["target"]) -def lgbm_regressor(features: np.ndarray, target: np.ndarray, - test_features: np.ndarray) -> np.ndarray: +def lgbm_regressor( + features: np.ndarray, target: np.ndarray, test_features: np.ndarray +) -> np.ndarray: """ >>> lgbm_regressor(np.array([[0.12, 0.02, 0.01, 0.25, 0.09]]), ... np.array([1]), np.array([[0.11, 0.03, 0.02, 0.28, 0.08]])) @@ -39,7 +40,7 @@ def main() -> None: Bank Marketing Dataset is used to demonstrate the algorithm. """ # Load Bank Marketing dataset - bank_data = fetch_openml(name='bank-marketing', version=1, as_frame=False) + bank_data = fetch_openml(name="bank-marketing", version=1, as_frame=False) data, target = data_handling(bank_data) x_train, x_test, y_train, y_test = train_test_split( data, target, test_size=0.25, random_state=1 From e3197a29216a78576e0037a3a97b2965737524a0 Mon Sep 17 00:00:00 2001 From: Archisman Karmakar <92569441+ArchismanKarmakar@users.noreply.github.com> Date: Fri, 4 Oct 2024 23:53:20 +0530 Subject: [PATCH 11/13] Update lgbm_classifier.py --- machine_learning/lgbm_classifier.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/machine_learning/lgbm_classifier.py b/machine_learning/lgbm_classifier.py index bb1fbdbf39e8..6635ac20e16f 100644 --- a/machine_learning/lgbm_classifier.py +++ b/machine_learning/lgbm_classifier.py @@ -1,10 +1,10 @@ # LGBM Classifier Example using Bank Marketing Dataset import numpy as np +from lightgbm import LGBMClassifier from matplotlib import pyplot as plt from sklearn.datasets import fetch_openml from sklearn.metrics import ConfusionMatrixDisplay from sklearn.model_selection import train_test_split -from lightgbm import LGBMClassifier def data_handling(data: dict) -> tuple: @@ -35,7 +35,7 @@ def main() -> None: Bank Marketing Dataset is used to demonstrate the algorithm. """ # Load Bank Marketing dataset - bank_data = fetch_openml(name="bank-marketing", version=1, as_frame=False) + bank_data = fetch_openml(name='bank-marketing', version=1, as_frame=False) data, target = data_handling(bank_data) x_train, x_test, y_train, y_test = train_test_split( data, target, test_size=0.25, random_state=1 @@ -48,7 +48,7 @@ def main() -> None: lgbm_classifier_model, x_test, y_test, - display_labels=["No", "Yes"], + display_labels=['No', 'Yes'], cmap="Blues", normalize="true", ) From f0ceb04ca90276e6601507af3e4a2b376ab4b5be Mon Sep 17 00:00:00 2001 From: Archisman Karmakar <92569441+ArchismanKarmakar@users.noreply.github.com> Date: Fri, 4 Oct 2024 23:53:32 +0530 Subject: [PATCH 12/13] Update lgbm_regressor.py --- machine_learning/lgbm_regressor.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/machine_learning/lgbm_regressor.py b/machine_learning/lgbm_regressor.py index a47bad125bef..851e58b85b72 100644 --- a/machine_learning/lgbm_regressor.py +++ b/machine_learning/lgbm_regressor.py @@ -1,9 +1,9 @@ # LGBM Regressor Example using Bank Marketing Dataset import numpy as np +from lightgbm import LGBMRegressor from sklearn.datasets import fetch_openml from sklearn.metrics import mean_absolute_error, mean_squared_error from sklearn.model_selection import train_test_split -from lightgbm import LGBMRegressor def data_handling(data: dict) -> tuple: @@ -17,9 +17,8 @@ def data_handling(data: dict) -> tuple: return (data["data"], data["target"]) -def lgbm_regressor( - features: np.ndarray, target: np.ndarray, test_features: np.ndarray -) -> np.ndarray: +def lgbm_regressor(features: np.ndarray, target: np.ndarray, + test_features: np.ndarray) -> np.ndarray: """ >>> lgbm_regressor(np.array([[0.12, 0.02, 0.01, 0.25, 0.09]]), ... np.array([1]), np.array([[0.11, 0.03, 0.02, 0.28, 0.08]])) @@ -40,7 +39,7 @@ def main() -> None: Bank Marketing Dataset is used to demonstrate the algorithm. """ # Load Bank Marketing dataset - bank_data = fetch_openml(name="bank-marketing", version=1, as_frame=False) + bank_data = fetch_openml(name='bank-marketing', version=1, as_frame=False) data, target = data_handling(bank_data) x_train, x_test, y_train, y_test = train_test_split( data, target, test_size=0.25, random_state=1 From 7298a54d92e079afd48b6a1a07fb344ab8590b9e Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Fri, 4 Oct 2024 18:26:44 +0000 Subject: [PATCH 13/13] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- machine_learning/lgbm_classifier.py | 4 ++-- machine_learning/lgbm_regressor.py | 7 ++++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/machine_learning/lgbm_classifier.py b/machine_learning/lgbm_classifier.py index 6635ac20e16f..b483ebbd0d50 100644 --- a/machine_learning/lgbm_classifier.py +++ b/machine_learning/lgbm_classifier.py @@ -35,7 +35,7 @@ def main() -> None: Bank Marketing Dataset is used to demonstrate the algorithm. """ # Load Bank Marketing dataset - bank_data = fetch_openml(name='bank-marketing', version=1, as_frame=False) + bank_data = fetch_openml(name="bank-marketing", version=1, as_frame=False) data, target = data_handling(bank_data) x_train, x_test, y_train, y_test = train_test_split( data, target, test_size=0.25, random_state=1 @@ -48,7 +48,7 @@ def main() -> None: lgbm_classifier_model, x_test, y_test, - display_labels=['No', 'Yes'], + display_labels=["No", "Yes"], cmap="Blues", normalize="true", ) diff --git a/machine_learning/lgbm_regressor.py b/machine_learning/lgbm_regressor.py index 851e58b85b72..0e97217eab8b 100644 --- a/machine_learning/lgbm_regressor.py +++ b/machine_learning/lgbm_regressor.py @@ -17,8 +17,9 @@ def data_handling(data: dict) -> tuple: return (data["data"], data["target"]) -def lgbm_regressor(features: np.ndarray, target: np.ndarray, - test_features: np.ndarray) -> np.ndarray: +def lgbm_regressor( + features: np.ndarray, target: np.ndarray, test_features: np.ndarray +) -> np.ndarray: """ >>> lgbm_regressor(np.array([[0.12, 0.02, 0.01, 0.25, 0.09]]), ... np.array([1]), np.array([[0.11, 0.03, 0.02, 0.28, 0.08]])) @@ -39,7 +40,7 @@ def main() -> None: Bank Marketing Dataset is used to demonstrate the algorithm. """ # Load Bank Marketing dataset - bank_data = fetch_openml(name='bank-marketing', version=1, as_frame=False) + bank_data = fetch_openml(name="bank-marketing", version=1, as_frame=False) data, target = data_handling(bank_data) x_train, x_test, y_train, y_test = train_test_split( data, target, test_size=0.25, random_state=1