Skip to content

XGBoost Classifier #7106

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 55 commits into from
Oct 20, 2022
Merged
Changes from all commits
Commits
Show all changes
55 commits
Select commit Hold shift + click to select a range
1bd7304
Fixes: #{6551}
Moddy2024 Oct 13, 2022
8990641
Update xgboostclassifier.py
Moddy2024 Oct 13, 2022
5feb35b
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Oct 13, 2022
a927e97
Update xgboostclassifier.py
Moddy2024 Oct 13, 2022
aaaf398
Update xgboostclassifier.py
Moddy2024 Oct 13, 2022
06a9025
Update xgboostclassifier.py
Moddy2024 Oct 13, 2022
0decdf8
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Oct 13, 2022
d795ac4
Fixes: #{6551}
Moddy2024 Oct 13, 2022
e16b32b
Update xgboostclassifier.py
Moddy2024 Oct 14, 2022
f797b34
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Oct 14, 2022
bd88865
Update xgboostclassifier.py
Moddy2024 Oct 14, 2022
3cbd77b
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Oct 14, 2022
06b6981
Update xgboostclassifier.py
Moddy2024 Oct 14, 2022
0519814
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Oct 14, 2022
bc690dd
Update xgboostclassifier.py
Moddy2024 Oct 14, 2022
3b899b1
Fixes : #6551
Moddy2024 Oct 14, 2022
8c111ca
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Oct 14, 2022
08cf249
Fixes : #6551
Moddy2024 Oct 14, 2022
c282905
Fixes : #6551
Moddy2024 Oct 14, 2022
776162d
Fixes: #6551
Moddy2024 Oct 14, 2022
93f1c64
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Oct 14, 2022
49a6223
Update xgboostclassifier.py
Moddy2024 Oct 14, 2022
147bfd4
Update xgboostclassifier.py
Moddy2024 Oct 14, 2022
4451683
Update xgboostclassifier.py
Moddy2024 Oct 14, 2022
489822d
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Oct 14, 2022
844b4be
Fixes: #6551
Moddy2024 Oct 14, 2022
79603f7
Fixes #6551
Moddy2024 Oct 14, 2022
5751029
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Oct 14, 2022
9e77f64
Fixes: {#6551}
Moddy2024 Oct 14, 2022
0ccc63f
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Oct 14, 2022
f44646b
Fixes: {#6551}
Moddy2024 Oct 14, 2022
ccf61cd
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Oct 14, 2022
9c0bbff
Fixes: #6551
Moddy2024 Oct 14, 2022
34d7dc3
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Oct 14, 2022
6d13459
FIXES: {#6551}
Moddy2024 Oct 14, 2022
80d86c1
Fixes : { #6551}
Moddy2024 Oct 19, 2022
5f9cae8
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Oct 19, 2022
22d8913
Fixes : { #6551}
Moddy2024 Oct 19, 2022
3f36987
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Oct 19, 2022
a357282
Fixes: { #6551]
Moddy2024 Oct 19, 2022
ae11a52
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Oct 19, 2022
8a42329
Update xgboostclassifier.py
Moddy2024 Oct 19, 2022
d9cded2
Update xgboostclassifier.py
Moddy2024 Oct 19, 2022
682943f
Apply suggestions from code review
cclauss Oct 20, 2022
0de2c82
Update xgboostclassifier.py
cclauss Oct 20, 2022
d04fd28
Update xgboostclassifier.py
cclauss Oct 20, 2022
2c7f99c
Update xgboostclassifier.py
Moddy2024 Oct 20, 2022
1f3affb
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Oct 20, 2022
307122f
Fixes: { #6551}
Moddy2024 Oct 20, 2022
7d42c2e
Update xgboostclassifier.py
Moddy2024 Oct 20, 2022
32a5206
Fixes: { #6551}
Moddy2024 Oct 20, 2022
32091d3
Update xgboostclassifier.py
Moddy2024 Oct 20, 2022
98dc009
Fixes: ( #6551)
Moddy2024 Oct 20, 2022
6496c2c
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Oct 20, 2022
c78ede9
Fixes: { #6551}
Moddy2024 Oct 20, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
82 changes: 82 additions & 0 deletions machine_learning/xgboostclassifier.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
# XGBoost Classifier Example
import numpy as np
from matplotlib import pyplot as plt
from sklearn.datasets import load_iris
from sklearn.metrics import plot_confusion_matrix
from sklearn.model_selection import train_test_split
from xgboost import XGBClassifier


def data_handling(data: dict) -> tuple:
# Split dataset into features and target
# data is features
"""
>>> 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 xgboost(features: np.ndarray, target: np.ndarray) -> XGBClassifier:
"""
>>> xgboost(np.array([[5.1, 3.6, 1.4, 0.2]]), np.array([0]))
XGBClassifier(base_score=0.5, booster='gbtree', callbacks=None,
colsample_bylevel=1, colsample_bynode=1, colsample_bytree=1,
early_stopping_rounds=None, enable_categorical=False,
eval_metric=None, gamma=0, gpu_id=-1, grow_policy='depthwise',
importance_type=None, interaction_constraints='',
learning_rate=0.300000012, max_bin=256, max_cat_to_onehot=4,
max_delta_step=0, max_depth=6, max_leaves=0, min_child_weight=1,
missing=nan, monotone_constraints='()', n_estimators=100,
n_jobs=0, num_parallel_tree=1, predictor='auto', random_state=0,
reg_alpha=0, reg_lambda=1, ...)
"""
classifier = XGBClassifier()
classifier.fit(features, target)
return classifier


def main() -> None:

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As there is no test file in this pull request nor any test function or class in the file machine_learning/xgboostclassifier.py, please provide doctest for the function main

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As there is no test file in this pull request nor any test function or class in the file machine_learning/xgboostclassifier.py, please provide doctest for the function main


"""
>>> main()

Url for the algorithm:
https://xgboost.readthedocs.io/en/stable/
Iris type dataset is used to demonstrate algorithm.
"""

# Load Iris dataset
iris = load_iris()
features, targets = data_handling(iris)
x_train, x_test, y_train, y_test = train_test_split(
features, targets, test_size=0.25
)

names = iris["target_names"]

# Create an XGBoost Classifier from the training data
xgboost_classifier = xgboost(x_train, y_train)

# Display the confusion matrix of the classifier with both training and test sets
plot_confusion_matrix(
xgboost_classifier,
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()