Skip to content

Commit 74b0753

Browse files
authored
fix: "UserWarning: X has feature names" when predicting (#53)
Closes #51. ### Summary of Changes Suppress a warning from `scikit-learn` that is not relevant for us. See also: https://stackoverflow.com/questions/69326639/sklearn-warning-valid-feature-names-in-version-1-0 --------- Co-authored-by: lars-reimann <[email protected]>
1 parent 68ddf24 commit 74b0753

19 files changed

+72
-47
lines changed

docs/tutorials/machine_learning.ipynb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,4 +115,4 @@
115115
},
116116
"nbformat": 4,
117117
"nbformat_minor": 0
118-
}
118+
}

src/safeds/_util/__init__.py

Whitespace-only changes.

src/safeds/_util/_util_sklearn.py renamed to src/safeds/ml/_util_sklearn.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ def predict(model: Any, dataset: Table, target_name: str) -> Table:
6767
dataset_df = dataset._data
6868
dataset_df.columns = dataset.schema.get_column_names()
6969
try:
70-
predicted_target_vector = model.predict(dataset_df)
70+
predicted_target_vector = model.predict(dataset_df.values)
7171
result_set = dataset_df.copy(deep=True)
7272
if target_name in result_set.columns:
7373
raise ValueError(

src/safeds/ml/classification/_ada_boost.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
from typing import Optional
22

33
# noinspection PyProtectedMember
4-
import safeds._util._util_sklearn
4+
import safeds.ml._util_sklearn
55
from safeds.data import SupervisedDataset
66
from safeds.data.tabular import Table
77
from sklearn.ensemble import AdaBoostClassifier as sk_AdaBoostClassifier
@@ -32,7 +32,7 @@ def fit(self, supervised_dataset: SupervisedDataset) -> None:
3232
LearningError
3333
If the supervised dataset contains invalid values or if the training failed.
3434
"""
35-
self.target_name = safeds._util._util_sklearn.fit(
35+
self.target_name = safeds.ml._util_sklearn.fit(
3636
self._classification, supervised_dataset
3737
)
3838

@@ -57,7 +57,7 @@ def predict(self, dataset: Table, target_name: Optional[str] = None) -> Table:
5757
PredictionError
5858
If prediction with the given dataset failed.
5959
"""
60-
return safeds._util._util_sklearn.predict(
60+
return safeds.ml._util_sklearn.predict(
6161
self._classification,
6262
dataset,
6363
target_name if target_name is not None else self.target_name,

src/safeds/ml/classification/_decision_tree.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
from typing import Optional
22

33
# noinspection PyProtectedMember
4-
import safeds._util._util_sklearn
4+
import safeds.ml._util_sklearn
55
from safeds.data import SupervisedDataset
66
from safeds.data.tabular import Table
77
from sklearn.tree import DecisionTreeClassifier as sk_DecisionTreeClassifier
@@ -32,7 +32,7 @@ def fit(self, supervised_dataset: SupervisedDataset) -> None:
3232
LearningError
3333
If the supervised dataset contains invalid values or if the training failed.
3434
"""
35-
self.target_name = safeds._util._util_sklearn.fit(
35+
self.target_name = safeds.ml._util_sklearn.fit(
3636
self._classification, supervised_dataset
3737
)
3838

@@ -57,7 +57,7 @@ def predict(self, dataset: Table, target_name: Optional[str] = None) -> Table:
5757
PredictionError
5858
If prediction with the given dataset failed.
5959
"""
60-
return safeds._util._util_sklearn.predict(
60+
return safeds.ml._util_sklearn.predict(
6161
self._classification,
6262
dataset,
6363
target_name if target_name is not None else self.target_name,

src/safeds/ml/classification/_gradient_boosting_classification.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
from typing import Optional
22

33
# noinspection PyProtectedMember
4-
import safeds._util._util_sklearn
4+
import safeds.ml._util_sklearn
55
from safeds.data import SupervisedDataset
66
from safeds.data.tabular import Table
77
from sklearn.ensemble import GradientBoostingClassifier
@@ -32,7 +32,7 @@ def fit(self, supervised_dataset: SupervisedDataset) -> None:
3232
LearningError
3333
If the supervised dataset contains invalid values or if the training failed.
3434
"""
35-
self.target_name = safeds._util._util_sklearn.fit(
35+
self.target_name = safeds.ml._util_sklearn.fit(
3636
self._classification, supervised_dataset
3737
)
3838

@@ -58,7 +58,7 @@ def predict(self, dataset: Table, target_name: Optional[str] = None) -> Table:
5858
PredictionError
5959
If prediction with the given dataset failed.
6060
"""
61-
return safeds._util._util_sklearn.predict(
61+
return safeds.ml._util_sklearn.predict(
6262
self._classification,
6363
dataset,
6464
target_name if target_name is not None else self.target_name,

src/safeds/ml/classification/_k_nearest_neighbors.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
from typing import Optional
22

33
# noinspection PyProtectedMember
4-
import safeds._util._util_sklearn
4+
import safeds.ml._util_sklearn
55
from safeds.data import SupervisedDataset
66
from safeds.data.tabular import Table
77
from sklearn.neighbors import KNeighborsClassifier
@@ -36,7 +36,7 @@ def fit(self, supervised_dataset: SupervisedDataset) -> None:
3636
LearningError
3737
If the supervised dataset contains invalid values or if the training failed.
3838
"""
39-
self.target_name = safeds._util._util_sklearn.fit(
39+
self.target_name = safeds.ml._util_sklearn.fit(
4040
self._classification, supervised_dataset
4141
)
4242

@@ -61,7 +61,7 @@ def predict(self, dataset: Table, target_name: Optional[str] = None) -> Table:
6161
PredictionError
6262
If prediction with the given dataset failed.
6363
"""
64-
return safeds._util._util_sklearn.predict(
64+
return safeds.ml._util_sklearn.predict(
6565
self._classification,
6666
dataset,
6767
target_name if target_name is not None else self.target_name,

src/safeds/ml/classification/_logistic_regression.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
from typing import Optional
22

33
# noinspection PyProtectedMember
4-
import safeds._util._util_sklearn
4+
import safeds.ml._util_sklearn
55
from safeds.data import SupervisedDataset
66
from safeds.data.tabular import Table
77
from sklearn.linear_model import LogisticRegression as sk_LogisticRegression
@@ -32,7 +32,7 @@ def fit(self, supervised_dataset: SupervisedDataset) -> None:
3232
LearningError
3333
If the supervised dataset contains invalid values or if the training failed.
3434
"""
35-
self.target_name = safeds._util._util_sklearn.fit(
35+
self.target_name = safeds.ml._util_sklearn.fit(
3636
self._classification, supervised_dataset
3737
)
3838

@@ -57,7 +57,7 @@ def predict(self, dataset: Table, target_name: Optional[str] = None) -> Table:
5757
PredictionError
5858
If prediction with the given dataset failed.
5959
"""
60-
return safeds._util._util_sklearn.predict(
60+
return safeds.ml._util_sklearn.predict(
6161
self._classification,
6262
dataset,
6363
target_name if target_name is not None else self.target_name,

src/safeds/ml/classification/_random_forest.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
from typing import Optional
22

33
# noinspection PyProtectedMember
4-
import safeds._util._util_sklearn
4+
import safeds.ml._util_sklearn
55
from safeds.data import SupervisedDataset
66
from safeds.data.tabular import Table
77
from sklearn.ensemble import RandomForestClassifier
@@ -31,7 +31,7 @@ def fit(self, supervised_dataset: SupervisedDataset) -> None:
3131
LearningError
3232
If the supervised dataset contains invalid values or if the training failed.
3333
"""
34-
self.target_name = safeds._util._util_sklearn.fit(
34+
self.target_name = safeds.ml._util_sklearn.fit(
3535
self._classification, supervised_dataset
3636
)
3737

@@ -56,7 +56,7 @@ def predict(self, dataset: Table, target_name: Optional[str] = None) -> Table:
5656
PredictionError
5757
If prediction with the given dataset failed.
5858
"""
59-
return safeds._util._util_sklearn.predict(
59+
return safeds.ml._util_sklearn.predict(
6060
self._classification,
6161
dataset,
6262
target_name if target_name is not None else self.target_name,

src/safeds/ml/regression/_ada_boost.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
from typing import Optional
22

33
# noinspection PyProtectedMember
4-
import safeds._util._util_sklearn
4+
import safeds.ml._util_sklearn
55
from safeds.data import SupervisedDataset
66
from safeds.data.tabular import Table
77
from sklearn.ensemble import AdaBoostRegressor as sk_AdaBoostRegressor
@@ -32,7 +32,7 @@ def fit(self, supervised_dataset: SupervisedDataset) -> None:
3232
LearningError
3333
If the supervised dataset contains invalid values or if the training failed.
3434
"""
35-
self.target_name = safeds._util._util_sklearn.fit(
35+
self.target_name = safeds.ml._util_sklearn.fit(
3636
self._regression, supervised_dataset
3737
)
3838

@@ -57,7 +57,7 @@ def predict(self, dataset: Table, target_name: Optional[str] = None) -> Table:
5757
PredictionError
5858
If prediction with the given dataset failed.
5959
"""
60-
return safeds._util._util_sklearn.predict(
60+
return safeds.ml._util_sklearn.predict(
6161
self._regression,
6262
dataset,
6363
target_name if target_name is not None else self.target_name,

src/safeds/ml/regression/_decision_tree.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
from typing import Optional
22

33
# noinspection PyProtectedMember
4-
import safeds._util._util_sklearn
4+
import safeds.ml._util_sklearn
55
from safeds.data import SupervisedDataset
66
from safeds.data.tabular import Table
77
from sklearn.tree import DecisionTreeRegressor as sk_DecisionTreeRegressor
@@ -32,7 +32,7 @@ def fit(self, supervised_dataset: SupervisedDataset) -> None:
3232
LearningError
3333
If the supervised dataset contains invalid values or if the training failed.
3434
"""
35-
self.target_name = safeds._util._util_sklearn.fit(
35+
self.target_name = safeds.ml._util_sklearn.fit(
3636
self._regression, supervised_dataset
3737
)
3838

@@ -57,7 +57,7 @@ def predict(self, dataset: Table, target_name: Optional[str] = None) -> Table:
5757
PredictionError
5858
If prediction with the given dataset failed.
5959
"""
60-
return safeds._util._util_sklearn.predict(
60+
return safeds.ml._util_sklearn.predict(
6161
self._regression,
6262
dataset,
6363
target_name if target_name is not None else self.target_name,

src/safeds/ml/regression/_elastic_net_regression.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
from typing import Optional
22

33
# noinspection PyProtectedMember
4-
import safeds._util._util_sklearn
4+
import safeds.ml._util_sklearn
55
from safeds.data import SupervisedDataset
66
from safeds.data.tabular import Table
77
from sklearn.linear_model import ElasticNet as sk_ElasticNet
@@ -32,7 +32,7 @@ def fit(self, supervised_dataset: SupervisedDataset) -> None:
3232
LearningError
3333
If the supervised dataset contains invalid values or if the training failed.
3434
"""
35-
self.target_name = safeds._util._util_sklearn.fit(
35+
self.target_name = safeds.ml._util_sklearn.fit(
3636
self._regression, supervised_dataset
3737
)
3838

@@ -57,7 +57,7 @@ def predict(self, dataset: Table, target_name: Optional[str] = None) -> Table:
5757
PredictionError
5858
If prediction with the given dataset failed
5959
"""
60-
return safeds._util._util_sklearn.predict(
60+
return safeds.ml._util_sklearn.predict(
6161
self._regression,
6262
dataset,
6363
target_name if target_name is not None else self.target_name,

src/safeds/ml/regression/_gradient_boosting_regression.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
from typing import Optional
22

33
# noinspection PyProtectedMember
4-
import safeds._util._util_sklearn
4+
import safeds.ml._util_sklearn
55
from safeds.data import SupervisedDataset
66
from safeds.data.tabular import Table
77
from sklearn.ensemble import GradientBoostingRegressor
@@ -33,7 +33,7 @@ def fit(self, supervised_dataset: SupervisedDataset) -> None:
3333
LearningError
3434
If the supervised dataset contains invalid values or if the training failed.
3535
"""
36-
self.target_name = safeds._util._util_sklearn.fit(
36+
self.target_name = safeds.ml._util_sklearn.fit(
3737
self._regression, supervised_dataset
3838
)
3939

@@ -59,7 +59,7 @@ def predict(self, dataset: Table, target_name: Optional[str] = None) -> Table:
5959
PredictionError
6060
If prediction with the given dataset failed.
6161
"""
62-
return safeds._util._util_sklearn.predict(
62+
return safeds.ml._util_sklearn.predict(
6363
self._regression,
6464
dataset,
6565
target_name if target_name is not None else self.target_name,

src/safeds/ml/regression/_k_nearest_neighbors.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
from typing import Optional
22

33
# noinspection PyProtectedMember
4-
import safeds._util._util_sklearn
4+
import safeds.ml._util_sklearn
55
from safeds.data import SupervisedDataset
66
from safeds.data.tabular import Table
77
from sklearn.neighbors import KNeighborsRegressor
@@ -36,7 +36,7 @@ def fit(self, supervised_dataset: SupervisedDataset) -> None:
3636
LearningError
3737
If the supervised dataset contains invalid values or if the training failed.
3838
"""
39-
self.target_name = safeds._util._util_sklearn.fit(
39+
self.target_name = safeds.ml._util_sklearn.fit(
4040
self._regression, supervised_dataset
4141
)
4242

@@ -61,7 +61,7 @@ def predict(self, dataset: Table, target_name: Optional[str] = None) -> Table:
6161
PredictionError
6262
If prediction with the given dataset failed.
6363
"""
64-
return safeds._util._util_sklearn.predict(
64+
return safeds.ml._util_sklearn.predict(
6565
self._regression,
6666
dataset,
6767
target_name if target_name is not None else self.target_name,

src/safeds/ml/regression/_lasso_regression.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
from typing import Optional
22

33
# noinspection PyProtectedMember
4-
import safeds._util._util_sklearn
4+
import safeds.ml._util_sklearn
55
from safeds.data import SupervisedDataset
66
from safeds.data.tabular import Table
77
from sklearn.linear_model import Lasso as sk_Lasso
@@ -32,7 +32,7 @@ def fit(self, supervised_dataset: SupervisedDataset) -> None:
3232
LearningError
3333
If the supervised dataset contains invalid values or if the training failed.
3434
"""
35-
self.target_name = safeds._util._util_sklearn.fit(
35+
self.target_name = safeds.ml._util_sklearn.fit(
3636
self._regression, supervised_dataset
3737
)
3838

@@ -57,7 +57,7 @@ def predict(self, dataset: Table, target_name: Optional[str] = None) -> Table:
5757
PredictionError
5858
If prediction with the given dataset failed.
5959
"""
60-
return safeds._util._util_sklearn.predict(
60+
return safeds.ml._util_sklearn.predict(
6161
self._regression,
6262
dataset,
6363
target_name if target_name is not None else self.target_name,

src/safeds/ml/regression/_linear_regression.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
from typing import Optional
22

33
# noinspection PyProtectedMember
4-
import safeds._util._util_sklearn
4+
import safeds.ml._util_sklearn
55
from safeds.data import SupervisedDataset
66
from safeds.data.tabular import Table
77
from sklearn.linear_model import LinearRegression as sk_LinearRegression
@@ -32,7 +32,7 @@ def fit(self, supervised_dataset: SupervisedDataset) -> None:
3232
LearningError
3333
If the supervised dataset contains invalid values or if the training failed.
3434
"""
35-
self.target_name = safeds._util._util_sklearn.fit(
35+
self.target_name = safeds.ml._util_sklearn.fit(
3636
self._regression, supervised_dataset
3737
)
3838

@@ -57,7 +57,7 @@ def predict(self, dataset: Table, target_name: Optional[str] = None) -> Table:
5757
PredictionError
5858
If prediction with the given dataset failed.
5959
"""
60-
return safeds._util._util_sklearn.predict(
60+
return safeds.ml._util_sklearn.predict(
6161
self._regression,
6262
dataset,
6363
target_name if target_name is not None else self.target_name,

src/safeds/ml/regression/_random_forest.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
from typing import Optional
22

33
# noinspection PyProtectedMember
4-
import safeds._util._util_sklearn
4+
import safeds.ml._util_sklearn
55
from safeds.data import SupervisedDataset
66
from safeds.data.tabular import Table
77
from sklearn.ensemble import RandomForestRegressor
@@ -31,7 +31,7 @@ def fit(self, supervised_dataset: SupervisedDataset) -> None:
3131
LearningError
3232
If the supervised dataset contains invalid values or if the training failed.
3333
"""
34-
self.target_name = safeds._util._util_sklearn.fit(
34+
self.target_name = safeds.ml._util_sklearn.fit(
3535
self._regression, supervised_dataset
3636
)
3737

@@ -56,7 +56,7 @@ def predict(self, dataset: Table, target_name: Optional[str] = None) -> Table:
5656
PredictionError
5757
If prediction with the given dataset failed.
5858
"""
59-
return safeds._util._util_sklearn.predict(
59+
return safeds.ml._util_sklearn.predict(
6060
self._regression,
6161
dataset,
6262
target_name if target_name is not None else self.target_name,

0 commit comments

Comments
 (0)