Цель
Знайте конвертер sklearn и поток оценки
преобразователь
Подумайте о шагах разработки функций, которые вы сделали ранее?
-
Instantiate (экземпляр представляет собой класс-трансформер (Transformer))
-
Вызовите fit_transform (для документа, чтобы установить матрицу частот классификационных слов, его нельзя вызывать одновременно)
Интерфейс разработки признаков называется преобразователем, и вызов преобразователя имеет несколько форм.
-
fit_transform
-
fit
-
transform
В чем разница между этими методами? Просто посмотрите на следующий код
In [1]: from sklearn.preprocessing import StandardScaler
In [2]: std1 = StandardScaler()
In [3]: a = [[1,2,3], [4,5,6]]
In [4]: std1.fit_transform(a)
Out[4]:
array([[-1., -1., -1.],
[ 1., 1., 1.]])
In [5]: std2 = StandardScaler()
In [6]: std2.fit(a)
Out[6]: StandardScaler(copy=True, with_mean=True, with_std=True)
In [7]: std2.transform(a)
Out[7]:
array([[-1., -1., -1.],
[ 1., 1., 1.]])
Из этого видно, что роль fit_transform эквивалентна трансформации плюс подгонке. Но зачем предоставлять отдельную подгонку или использовать оригинальный std2 для стандартизации. Преобразовать b по среднему и стандартному отклонению a
In [8]: b = [[7,8,9], [10, 11, 12]]
In [9]: std2.transform(b)
Out[9]:
array([[3., 3., 3.],
[5., 5., 5.]])
In [10]: std2.fit_transform(b)
Out[10]:
array([[-1., -1., -1.],
[ 1., 1., 1.]])
Estimator (реализация алгоритма машинного обучения sklearn)
В sklearn оценщик (оценщик) играет важную роль, представляет собой класс API, реализующий алгоритм
-
Оценщик для классификации:
-
sklearn.neighbors алгоритм k-ближайшего соседа
-
sklearn.naive_bayes Байесовский
-
sklearn.linear_model.LogisticRegression логистическая регрессия
-
sklearn.tree дерево решений и случайный лес
-
-
Оценщик для регрессии:
-
sklearn.linear_model.LinearRegression Линейная регрессия
-
sklearn.linear_model.Ridge Регрессия хребта
-
-
Оценщики для неконтролируемого обучения
- sklearn.cluster.KMeans кластеризация