Skip to content

Commit ba8d759

Browse files
import one hot encoder Pt.5
1 parent 5a2fb0a commit ba8d759

File tree

4 files changed

+21
-7
lines changed

4 files changed

+21
-7
lines changed

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "maturin"
44

55
[project]
66
name = "genbooster"
7-
version = "0.6.5"
7+
version = "0.6.6"
88
description = "A fast boosting implementation using Rust and Python"
99
requires-python = ">=3.7"
1010
authors = [

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
setup(
44
name="genbooster",
5-
version="0.6.5",
5+
version="0.6.6",
66
packages=find_packages(where="src"),
77
package_dir={"": "src"},
88
install_requires=[

src/genbooster/__init__.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,10 @@
55
from .regressionmodels import LinfaRegressor
66
from .adaboostclassifier import AdaBoostClassifier
77
from .adaboostregressor import AdaBoostRegressor
8-
from .pythonutils import one_hot_encode2
98
from .rust_core import RustBooster, Regressor
109

1110

1211
__all__ = ["BoosterRegressor", "BoosterClassifier",
1312
"RandomBagRegressor", "RandomBagClassifier",
1413
"RustBooster", "Regressor", "LinfaRegressor",
15-
"AdaBoostClassifier", "AdaBoostRegressor",
16-
"one_hot_encode2"]
14+
"AdaBoostClassifier", "AdaBoostRegressor"]

src/genbooster/genboosterclassifier.py

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
from sklearn.preprocessing import StandardScaler, OneHotEncoder
77
from sklearn.linear_model import Ridge
88
from sklearn.tree import ExtraTreeRegressor
9-
from .pythonutils import one_hot_encode2
109
from .genboosterregressor import BoosterRegressor
1110

1211

@@ -142,4 +141,21 @@ def predict_proba(self, X) -> np.ndarray:
142141
raw_preds = np.asarray([booster.predict(X) for booster in self.boosters_])
143142
shifted_preds = raw_preds - np.max(raw_preds, axis=0)
144143
exp_preds = np.exp(shifted_preds)
145-
return exp_preds / np.sum(exp_preds, axis=0)
144+
return exp_preds / np.sum(exp_preds, axis=0)
145+
146+
# one-hot encoding
147+
def one_hot_encode2(y, n_classes):
148+
# Convert pandas Series or DataFrame to numpy array
149+
if hasattr(y, 'values'):
150+
y = np.asarray(y.values, dtype=np.int64)
151+
else:
152+
y = np.asarray(y, dtype=np.int64)
153+
154+
# Initialize the one-hot encoded matrix
155+
res = np.zeros((len(y), n_classes))
156+
157+
# Fill in the 1s
158+
for i in range(len(y)):
159+
res[i, y[i]] = 1
160+
161+
return res

0 commit comments

Comments
 (0)