Skip to content

Commit

Permalink
fix: "UserWarning: X has feature names" when predicting (#53)
Browse files Browse the repository at this point in the history
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 <lars-reimann@users.noreply.github.com>
  • Loading branch information
lars-reimann and lars-reimann authored Mar 20, 2023
1 parent 68ddf24 commit 74b0753
Show file tree
Hide file tree
Showing 19 changed files with 72 additions and 47 deletions.
2 changes: 1 addition & 1 deletion docs/tutorials/machine_learning.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -115,4 +115,4 @@
},
"nbformat": 4,
"nbformat_minor": 0
}
}
Empty file removed src/safeds/_util/__init__.py
Empty file.
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ def predict(model: Any, dataset: Table, target_name: str) -> Table:
dataset_df = dataset._data
dataset_df.columns = dataset.schema.get_column_names()
try:
predicted_target_vector = model.predict(dataset_df)
predicted_target_vector = model.predict(dataset_df.values)
result_set = dataset_df.copy(deep=True)
if target_name in result_set.columns:
raise ValueError(
Expand Down
6 changes: 3 additions & 3 deletions src/safeds/ml/classification/_ada_boost.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from typing import Optional

# noinspection PyProtectedMember
import safeds._util._util_sklearn
import safeds.ml._util_sklearn
from safeds.data import SupervisedDataset
from safeds.data.tabular import Table
from sklearn.ensemble import AdaBoostClassifier as sk_AdaBoostClassifier
Expand Down Expand Up @@ -32,7 +32,7 @@ def fit(self, supervised_dataset: SupervisedDataset) -> None:
LearningError
If the supervised dataset contains invalid values or if the training failed.
"""
self.target_name = safeds._util._util_sklearn.fit(
self.target_name = safeds.ml._util_sklearn.fit(
self._classification, supervised_dataset
)

Expand All @@ -57,7 +57,7 @@ def predict(self, dataset: Table, target_name: Optional[str] = None) -> Table:
PredictionError
If prediction with the given dataset failed.
"""
return safeds._util._util_sklearn.predict(
return safeds.ml._util_sklearn.predict(
self._classification,
dataset,
target_name if target_name is not None else self.target_name,
Expand Down
6 changes: 3 additions & 3 deletions src/safeds/ml/classification/_decision_tree.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from typing import Optional

# noinspection PyProtectedMember
import safeds._util._util_sklearn
import safeds.ml._util_sklearn
from safeds.data import SupervisedDataset
from safeds.data.tabular import Table
from sklearn.tree import DecisionTreeClassifier as sk_DecisionTreeClassifier
Expand Down Expand Up @@ -32,7 +32,7 @@ def fit(self, supervised_dataset: SupervisedDataset) -> None:
LearningError
If the supervised dataset contains invalid values or if the training failed.
"""
self.target_name = safeds._util._util_sklearn.fit(
self.target_name = safeds.ml._util_sklearn.fit(
self._classification, supervised_dataset
)

Expand All @@ -57,7 +57,7 @@ def predict(self, dataset: Table, target_name: Optional[str] = None) -> Table:
PredictionError
If prediction with the given dataset failed.
"""
return safeds._util._util_sklearn.predict(
return safeds.ml._util_sklearn.predict(
self._classification,
dataset,
target_name if target_name is not None else self.target_name,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from typing import Optional

# noinspection PyProtectedMember
import safeds._util._util_sklearn
import safeds.ml._util_sklearn
from safeds.data import SupervisedDataset
from safeds.data.tabular import Table
from sklearn.ensemble import GradientBoostingClassifier
Expand Down Expand Up @@ -32,7 +32,7 @@ def fit(self, supervised_dataset: SupervisedDataset) -> None:
LearningError
If the supervised dataset contains invalid values or if the training failed.
"""
self.target_name = safeds._util._util_sklearn.fit(
self.target_name = safeds.ml._util_sklearn.fit(
self._classification, supervised_dataset
)

Expand All @@ -58,7 +58,7 @@ def predict(self, dataset: Table, target_name: Optional[str] = None) -> Table:
PredictionError
If prediction with the given dataset failed.
"""
return safeds._util._util_sklearn.predict(
return safeds.ml._util_sklearn.predict(
self._classification,
dataset,
target_name if target_name is not None else self.target_name,
Expand Down
6 changes: 3 additions & 3 deletions src/safeds/ml/classification/_k_nearest_neighbors.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from typing import Optional

# noinspection PyProtectedMember
import safeds._util._util_sklearn
import safeds.ml._util_sklearn
from safeds.data import SupervisedDataset
from safeds.data.tabular import Table
from sklearn.neighbors import KNeighborsClassifier
Expand Down Expand Up @@ -36,7 +36,7 @@ def fit(self, supervised_dataset: SupervisedDataset) -> None:
LearningError
If the supervised dataset contains invalid values or if the training failed.
"""
self.target_name = safeds._util._util_sklearn.fit(
self.target_name = safeds.ml._util_sklearn.fit(
self._classification, supervised_dataset
)

Expand All @@ -61,7 +61,7 @@ def predict(self, dataset: Table, target_name: Optional[str] = None) -> Table:
PredictionError
If prediction with the given dataset failed.
"""
return safeds._util._util_sklearn.predict(
return safeds.ml._util_sklearn.predict(
self._classification,
dataset,
target_name if target_name is not None else self.target_name,
Expand Down
6 changes: 3 additions & 3 deletions src/safeds/ml/classification/_logistic_regression.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from typing import Optional

# noinspection PyProtectedMember
import safeds._util._util_sklearn
import safeds.ml._util_sklearn
from safeds.data import SupervisedDataset
from safeds.data.tabular import Table
from sklearn.linear_model import LogisticRegression as sk_LogisticRegression
Expand Down Expand Up @@ -32,7 +32,7 @@ def fit(self, supervised_dataset: SupervisedDataset) -> None:
LearningError
If the supervised dataset contains invalid values or if the training failed.
"""
self.target_name = safeds._util._util_sklearn.fit(
self.target_name = safeds.ml._util_sklearn.fit(
self._classification, supervised_dataset
)

Expand All @@ -57,7 +57,7 @@ def predict(self, dataset: Table, target_name: Optional[str] = None) -> Table:
PredictionError
If prediction with the given dataset failed.
"""
return safeds._util._util_sklearn.predict(
return safeds.ml._util_sklearn.predict(
self._classification,
dataset,
target_name if target_name is not None else self.target_name,
Expand Down
6 changes: 3 additions & 3 deletions src/safeds/ml/classification/_random_forest.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from typing import Optional

# noinspection PyProtectedMember
import safeds._util._util_sklearn
import safeds.ml._util_sklearn
from safeds.data import SupervisedDataset
from safeds.data.tabular import Table
from sklearn.ensemble import RandomForestClassifier
Expand Down Expand Up @@ -31,7 +31,7 @@ def fit(self, supervised_dataset: SupervisedDataset) -> None:
LearningError
If the supervised dataset contains invalid values or if the training failed.
"""
self.target_name = safeds._util._util_sklearn.fit(
self.target_name = safeds.ml._util_sklearn.fit(
self._classification, supervised_dataset
)

Expand All @@ -56,7 +56,7 @@ def predict(self, dataset: Table, target_name: Optional[str] = None) -> Table:
PredictionError
If prediction with the given dataset failed.
"""
return safeds._util._util_sklearn.predict(
return safeds.ml._util_sklearn.predict(
self._classification,
dataset,
target_name if target_name is not None else self.target_name,
Expand Down
6 changes: 3 additions & 3 deletions src/safeds/ml/regression/_ada_boost.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from typing import Optional

# noinspection PyProtectedMember
import safeds._util._util_sklearn
import safeds.ml._util_sklearn
from safeds.data import SupervisedDataset
from safeds.data.tabular import Table
from sklearn.ensemble import AdaBoostRegressor as sk_AdaBoostRegressor
Expand Down Expand Up @@ -32,7 +32,7 @@ def fit(self, supervised_dataset: SupervisedDataset) -> None:
LearningError
If the supervised dataset contains invalid values or if the training failed.
"""
self.target_name = safeds._util._util_sklearn.fit(
self.target_name = safeds.ml._util_sklearn.fit(
self._regression, supervised_dataset
)

Expand All @@ -57,7 +57,7 @@ def predict(self, dataset: Table, target_name: Optional[str] = None) -> Table:
PredictionError
If prediction with the given dataset failed.
"""
return safeds._util._util_sklearn.predict(
return safeds.ml._util_sklearn.predict(
self._regression,
dataset,
target_name if target_name is not None else self.target_name,
Expand Down
6 changes: 3 additions & 3 deletions src/safeds/ml/regression/_decision_tree.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from typing import Optional

# noinspection PyProtectedMember
import safeds._util._util_sklearn
import safeds.ml._util_sklearn
from safeds.data import SupervisedDataset
from safeds.data.tabular import Table
from sklearn.tree import DecisionTreeRegressor as sk_DecisionTreeRegressor
Expand Down Expand Up @@ -32,7 +32,7 @@ def fit(self, supervised_dataset: SupervisedDataset) -> None:
LearningError
If the supervised dataset contains invalid values or if the training failed.
"""
self.target_name = safeds._util._util_sklearn.fit(
self.target_name = safeds.ml._util_sklearn.fit(
self._regression, supervised_dataset
)

Expand All @@ -57,7 +57,7 @@ def predict(self, dataset: Table, target_name: Optional[str] = None) -> Table:
PredictionError
If prediction with the given dataset failed.
"""
return safeds._util._util_sklearn.predict(
return safeds.ml._util_sklearn.predict(
self._regression,
dataset,
target_name if target_name is not None else self.target_name,
Expand Down
6 changes: 3 additions & 3 deletions src/safeds/ml/regression/_elastic_net_regression.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from typing import Optional

# noinspection PyProtectedMember
import safeds._util._util_sklearn
import safeds.ml._util_sklearn
from safeds.data import SupervisedDataset
from safeds.data.tabular import Table
from sklearn.linear_model import ElasticNet as sk_ElasticNet
Expand Down Expand Up @@ -32,7 +32,7 @@ def fit(self, supervised_dataset: SupervisedDataset) -> None:
LearningError
If the supervised dataset contains invalid values or if the training failed.
"""
self.target_name = safeds._util._util_sklearn.fit(
self.target_name = safeds.ml._util_sklearn.fit(
self._regression, supervised_dataset
)

Expand All @@ -57,7 +57,7 @@ def predict(self, dataset: Table, target_name: Optional[str] = None) -> Table:
PredictionError
If prediction with the given dataset failed
"""
return safeds._util._util_sklearn.predict(
return safeds.ml._util_sklearn.predict(
self._regression,
dataset,
target_name if target_name is not None else self.target_name,
Expand Down
6 changes: 3 additions & 3 deletions src/safeds/ml/regression/_gradient_boosting_regression.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from typing import Optional

# noinspection PyProtectedMember
import safeds._util._util_sklearn
import safeds.ml._util_sklearn
from safeds.data import SupervisedDataset
from safeds.data.tabular import Table
from sklearn.ensemble import GradientBoostingRegressor
Expand Down Expand Up @@ -33,7 +33,7 @@ def fit(self, supervised_dataset: SupervisedDataset) -> None:
LearningError
If the supervised dataset contains invalid values or if the training failed.
"""
self.target_name = safeds._util._util_sklearn.fit(
self.target_name = safeds.ml._util_sklearn.fit(
self._regression, supervised_dataset
)

Expand All @@ -59,7 +59,7 @@ def predict(self, dataset: Table, target_name: Optional[str] = None) -> Table:
PredictionError
If prediction with the given dataset failed.
"""
return safeds._util._util_sklearn.predict(
return safeds.ml._util_sklearn.predict(
self._regression,
dataset,
target_name if target_name is not None else self.target_name,
Expand Down
6 changes: 3 additions & 3 deletions src/safeds/ml/regression/_k_nearest_neighbors.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from typing import Optional

# noinspection PyProtectedMember
import safeds._util._util_sklearn
import safeds.ml._util_sklearn
from safeds.data import SupervisedDataset
from safeds.data.tabular import Table
from sklearn.neighbors import KNeighborsRegressor
Expand Down Expand Up @@ -36,7 +36,7 @@ def fit(self, supervised_dataset: SupervisedDataset) -> None:
LearningError
If the supervised dataset contains invalid values or if the training failed.
"""
self.target_name = safeds._util._util_sklearn.fit(
self.target_name = safeds.ml._util_sklearn.fit(
self._regression, supervised_dataset
)

Expand All @@ -61,7 +61,7 @@ def predict(self, dataset: Table, target_name: Optional[str] = None) -> Table:
PredictionError
If prediction with the given dataset failed.
"""
return safeds._util._util_sklearn.predict(
return safeds.ml._util_sklearn.predict(
self._regression,
dataset,
target_name if target_name is not None else self.target_name,
Expand Down
6 changes: 3 additions & 3 deletions src/safeds/ml/regression/_lasso_regression.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from typing import Optional

# noinspection PyProtectedMember
import safeds._util._util_sklearn
import safeds.ml._util_sklearn
from safeds.data import SupervisedDataset
from safeds.data.tabular import Table
from sklearn.linear_model import Lasso as sk_Lasso
Expand Down Expand Up @@ -32,7 +32,7 @@ def fit(self, supervised_dataset: SupervisedDataset) -> None:
LearningError
If the supervised dataset contains invalid values or if the training failed.
"""
self.target_name = safeds._util._util_sklearn.fit(
self.target_name = safeds.ml._util_sklearn.fit(
self._regression, supervised_dataset
)

Expand All @@ -57,7 +57,7 @@ def predict(self, dataset: Table, target_name: Optional[str] = None) -> Table:
PredictionError
If prediction with the given dataset failed.
"""
return safeds._util._util_sklearn.predict(
return safeds.ml._util_sklearn.predict(
self._regression,
dataset,
target_name if target_name is not None else self.target_name,
Expand Down
6 changes: 3 additions & 3 deletions src/safeds/ml/regression/_linear_regression.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from typing import Optional

# noinspection PyProtectedMember
import safeds._util._util_sklearn
import safeds.ml._util_sklearn
from safeds.data import SupervisedDataset
from safeds.data.tabular import Table
from sklearn.linear_model import LinearRegression as sk_LinearRegression
Expand Down Expand Up @@ -32,7 +32,7 @@ def fit(self, supervised_dataset: SupervisedDataset) -> None:
LearningError
If the supervised dataset contains invalid values or if the training failed.
"""
self.target_name = safeds._util._util_sklearn.fit(
self.target_name = safeds.ml._util_sklearn.fit(
self._regression, supervised_dataset
)

Expand All @@ -57,7 +57,7 @@ def predict(self, dataset: Table, target_name: Optional[str] = None) -> Table:
PredictionError
If prediction with the given dataset failed.
"""
return safeds._util._util_sklearn.predict(
return safeds.ml._util_sklearn.predict(
self._regression,
dataset,
target_name if target_name is not None else self.target_name,
Expand Down
6 changes: 3 additions & 3 deletions src/safeds/ml/regression/_random_forest.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from typing import Optional

# noinspection PyProtectedMember
import safeds._util._util_sklearn
import safeds.ml._util_sklearn
from safeds.data import SupervisedDataset
from safeds.data.tabular import Table
from sklearn.ensemble import RandomForestRegressor
Expand Down Expand Up @@ -31,7 +31,7 @@ def fit(self, supervised_dataset: SupervisedDataset) -> None:
LearningError
If the supervised dataset contains invalid values or if the training failed.
"""
self.target_name = safeds._util._util_sklearn.fit(
self.target_name = safeds.ml._util_sklearn.fit(
self._regression, supervised_dataset
)

Expand All @@ -56,7 +56,7 @@ def predict(self, dataset: Table, target_name: Optional[str] = None) -> Table:
PredictionError
If prediction with the given dataset failed.
"""
return safeds._util._util_sklearn.predict(
return safeds.ml._util_sklearn.predict(
self._regression,
dataset,
target_name if target_name is not None else self.target_name,
Expand Down
Loading

0 comments on commit 74b0753

Please sign in to comment.