I am new to datascience and tried running a tutorial. snippet of code:
import pandas as pd
from sklearn.feature_selection import VarianceThreshold
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
from mlxtend.feature_selection import SequentialFeatureSelector as SFS
data = pd.read_parquet('files/house_sales.parquet')
X = data.drop(['SalePrice', 'Target']).fillna(-1)
y = data['Target']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=.2, random_state=42)
sfs = SFS(KNeighborsClassifier(), k_features=10, verbose=2)
sfs.fit(X_train, y_train)
Produces tons of warnings (seems to be from iteration):
[Parallel(n_jobs=1)]: Using backend SequentialBackend with 1 concurrent workers.
C:\Users\Asus-PC\anaconda3\lib\site-packages\sklearn\neighbors\_classification.py:228: FutureWarning: Unlike other reduction functions (e.g. `skew`, `kurtosis`), the default behavior of `mode` typically preserves the axis it acts along. In SciPy 1.11.0, this behavior will change: the default value of `keepdims` will become False, the `axis` over which the statistic is taken will be eliminated, and the value None will no longer be accepted. Set `keepdims` to True or False to avoid this warning.
mode, _ = stats.mode(_y[neigh_ind, k], axis=1)
C:\Users\Asus-PC\anaconda3\lib\site-packages\sklearn\neighbors\_classification.py:228: FutureWarning: Unlike other reduction functions (e.g. `skew`, `kurtosis`), the default behavior of `mode` typically preserves the axis it acts along. In SciPy 1.11.0, this behavior will change: the default value of `keepdims` will become False, the `axis` over which the statistic is taken will be eliminated, and the value None will no longer be accepted. Set `keepdims` to True or False to avoid this warning.
mode, _ = stats.mode(_y[neigh_ind, k], axis=1)
C:\Users\Asus-PC\anaconda3\lib\site-packages\sklearn\neighbors\_classification.py:228: FutureWarning: Unlike other reduction functions (e.g. `skew`, `kurtosis`), the default behavior of `mode` typically preserves the axis it acts along. In SciPy 1.11.0, this behavior will change: the default value of `keepdims` will become False, the `axis` over which the statistic is taken will be eliminated, and the value None will no longer be accepted. Set `keepdims` to True or False to avoid this warning.
mode, _ = stats.mode(_y[neigh_ind, k], axis=1)
.... # repeated
C:\Users\Asus-PC\anaconda3\lib\site-packages\sklearn\neighbors_classification.py:228: FutureWarning: Unlike other reduction functions (e.g. skew
, kurtosis
), the default behavior of mode
typically preserves the axis it acts along. In SciPy 1.11.0, this behavior will change: the default value of keepdims
will become False, the axis
over which the statistic is taken will be eliminated, and the value None will no longer be accepted. Set keepdims
to True or False to avoid this warning.
I googled the answer and get that it might be from scipy / numpy modules. It is however unclear on how to set keepdims, as it is not included in the SFS function arguments
Expected example:
[Parallel(n_jobs=-1)]: Using backend LokyBackend with 4 concurrent workers.
[Parallel(n_jobs=-1)]: Done 13 out of 13 | elapsed: 11.5s remaining: 0.0s
[Parallel(n_jobs=-1)]: Done 13 out of 13 | elapsed: 11.5s finished
[2021-02-28 08:34:58] Features: 1/7 -- score: 0.7605911330049261[Parallel(n_jobs=-1)]: Using backend LokyBackend with 4 concurrent workers.
[Parallel(n_jobs=-1)]: Done 12 out of 12 | elapsed: 7.6s remaining: 0.0s
[Parallel(n_jobs=-1)]: Done 12 out of 12 | elapsed: 7.6s finished
Does someone know how to remove the warnings?