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 numberDiff line numberDiff 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

Comment thread
Moddy2024 marked this conversation as resolved.

def data_handling(data: dict) -> tuple:
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
# 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"])

Comment thread
Moddy2024 marked this conversation as resolved.

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

Comment thread
Moddy2024 marked this conversation as resolved.

def main() -> None:
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.

Copy link
Copy Markdown

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

Copy link
Copy Markdown

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

Comment thread
Moddy2024 marked this conversation as resolved.

"""
>>> 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()
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content
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 numberDiff line numberDiff 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

Comment thread
Moddy2024 marked this conversation as resolved.

def data_handling(data: dict) -> tuple:
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
# 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"])

Comment thread
Moddy2024 marked this conversation as resolved.

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

Comment thread
Moddy2024 marked this conversation as resolved.

def main() -> None:
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.

Copy link
Copy Markdown

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

Copy link
Copy Markdown

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

Comment thread
Moddy2024 marked this conversation as resolved.

"""
>>> 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()
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
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 numberDiff line numberDiff 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

Comment thread
Moddy2024 marked this conversation as resolved.

def data_handling(data: dict) -> tuple:
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
# 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"])

Comment thread
Moddy2024 marked this conversation as resolved.

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

Comment thread
Moddy2024 marked this conversation as resolved.

def main() -> None:
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.

Copy link
Copy Markdown

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

Copy link
Copy Markdown

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

Comment thread
Moddy2024 marked this conversation as resolved.

"""
>>> 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()
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
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 numberDiff line numberDiff 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

Comment thread
Moddy2024 marked this conversation as resolved.

def data_handling(data: dict) -> tuple:
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
# 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"])

Comment thread
Moddy2024 marked this conversation as resolved.

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

Comment thread
Moddy2024 marked this conversation as resolved.

def main() -> None:
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.

Copy link
Copy Markdown

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

Copy link
Copy Markdown

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

Comment thread
Moddy2024 marked this conversation as resolved.

"""
>>> 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()
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content
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 numberDiff line numberDiff 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

Comment thread
Moddy2024 marked this conversation as resolved.

def data_handling(data: dict) -> tuple:
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
# 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"])

Comment thread
Moddy2024 marked this conversation as resolved.

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

Comment thread
Moddy2024 marked this conversation as resolved.

def main() -> None:
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.

Copy link
Copy Markdown

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

Copy link
Copy Markdown

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

Comment thread
Moddy2024 marked this conversation as resolved.

"""
>>> 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()
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
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 numberDiff line numberDiff 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

Comment thread
Moddy2024 marked this conversation as resolved.

def data_handling(data: dict) -> tuple:
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
# 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"])

Comment thread
Moddy2024 marked this conversation as resolved.

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

Comment thread
Moddy2024 marked this conversation as resolved.

def main() -> None:
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.

Copy link
Copy Markdown

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

Copy link
Copy Markdown

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

Comment thread
Moddy2024 marked this conversation as resolved.

"""
>>> 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()
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
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 numberDiff line numberDiff 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

Comment thread
Moddy2024 marked this conversation as resolved.

def data_handling(data: dict) -> tuple:
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
# 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"])

Comment thread
Moddy2024 marked this conversation as resolved.

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

Comment thread
Moddy2024 marked this conversation as resolved.

def main() -> None:
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.

Copy link
Copy Markdown

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

Copy link
Copy Markdown

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

Comment thread
Moddy2024 marked this conversation as resolved.

"""
>>> 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()
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content
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 numberDiff line numberDiff 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

Comment thread
Moddy2024 marked this conversation as resolved.

def data_handling(data: dict) -> tuple:
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
# 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"])

Comment thread
Moddy2024 marked this conversation as resolved.

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

Comment thread
Moddy2024 marked this conversation as resolved.

def main() -> None:
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.
Comment thread
Moddy2024 marked this conversation as resolved.

Copy link
Copy Markdown

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

Copy link
Copy Markdown

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

Comment thread
Moddy2024 marked this conversation as resolved.

"""
>>> 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()