diff --git a/_doc/sphinxdoc/source/api/datasets.rst b/_doc/sphinxdoc/source/api/datasets.rst index b797913..25cd6fc 100644 --- a/_doc/sphinxdoc/source/api/datasets.rst +++ b/_doc/sphinxdoc/source/api/datasets.rst @@ -6,7 +6,12 @@ Jeux de données .. contents:: :local: +Recommandations +=============== + +.. autosignature:: papierstat.datasets.load_movielens_dataset + Régression -++++++++++ +========== .. autosignature:: papierstat.datasets.load_wines_dataset diff --git a/_doc/sphinxdoc/source/api/index.rst b/_doc/sphinxdoc/source/api/index.rst index df8cb00..c2dbd7b 100644 --- a/_doc/sphinxdoc/source/api/index.rst +++ b/_doc/sphinxdoc/source/api/index.rst @@ -7,3 +7,4 @@ API :maxdepth: 1 datasets + mltricks diff --git a/_doc/sphinxdoc/source/api/mltricks.rst b/_doc/sphinxdoc/source/api/mltricks.rst new file mode 100644 index 0000000..6b2a184 --- /dev/null +++ b/_doc/sphinxdoc/source/api/mltricks.rst @@ -0,0 +1,12 @@ + +=========================== +Astuces de machine learning +=========================== + +.. contents:: + :local: + +Autour de scikit-learn +====================== + +.. autosignature:: papierstat.mltricks.sklearn_base_transform_learner.SkBaseTransformLearner diff --git a/_unittests/ut_mltricks/test_sklearn_convert.py b/_unittests/ut_mltricks/test_sklearn_convert.py index 7802ed5..d73bb54 100644 --- a/_unittests/ut_mltricks/test_sklearn_convert.py +++ b/_unittests/ut_mltricks/test_sklearn_convert.py @@ -42,7 +42,7 @@ from sklearn.datasets import load_iris from sklearn.linear_model import LogisticRegression, LinearRegression from sklearn.tree import DecisionTreeClassifier, DecisionTreeRegressor -from sklearn.metrics import accuracy_score +from sklearn.metrics import accuracy_score, r2_score from sklearn.pipeline import make_pipeline from src.papierstat.mltricks import SkBaseTransformLearner @@ -105,13 +105,13 @@ def test_pipeline_with_two_regressors(self): pipe = make_pipeline(conv, DecisionTreeRegressor()) pipe.fit(X_train, y_train) pred = pipe.predict(X_test) - score = accuracy_score(y_test, pred) - self.assertGreater(score, 0.92) + score = r2_score(y_test, pred) + self.assertLesser(score, 1.) score2 = pipe.score(X_test, y_test) self.assertEqual(score, score2) rp = repr(conv) self.assertStartsWith( - 'SkBaseTransformLearner(model=LogisticRegression(C=1.0,', rp) + 'SkBaseTransformLearner(model=LinearRegression(copy_X=True,', rp) if __name__ == "__main__": diff --git a/src/papierstat/mltricks/sklearn_base_transform_learner.py b/src/papierstat/mltricks/sklearn_base_transform_learner.py index b22a014..fcd7404 100644 --- a/src/papierstat/mltricks/sklearn_base_transform_learner.py +++ b/src/papierstat/mltricks/sklearn_base_transform_learner.py @@ -4,6 +4,7 @@ @brief Implémente un *transform* qui suit la même API que tout :epkg:`scikit-learn` transform. """ import textwrap +import numpy from .sklearn_base_transform import SkBaseTransform @@ -110,7 +111,10 @@ def transform(self, X): @param X features @return prédictions """ - return self.method(X) + res = self.method(X) + if len(res.shape) == 1: + res = res[:, numpy.newaxis] + return res ############## # cloning API