Конвейеры и объединения признаков
Конвейеры
Конвейер можно использовать для объединения нескольких средств оценки в одно. Это удобно, поскольку при обработке данных часто существует фиксированная последовательность шагов, например выбор признаков, нормализация и классификация.
julia> using ScikitLearn
julia> using ScikitLearn.Pipelines: Pipeline, make_pipeline
julia> @sk_import decomposition: PCA
PyObject <class 'sklearn.decomposition._pca.PCA'>
julia> @sk_import linear_model: LogisticRegression
PyObject <class 'sklearn.linear_model._logistic.LogisticRegression'>
julia> using RDatasets: dataset
julia> iris = dataset("datasets", "iris");
julia> X = convert(Array, iris[!, [:SepalLength, :SepalWidth, :PetalLength, :PetalWidth]]);
julia> y = convert(Array, iris[!,:Species]);
julia> estimators = [("reduce_dim", PCA()), ("logistic_regression", LogisticRegression())]
2-element Array{Tuple{String,PyCall.PyObject},1}:
("reduce_dim", PyObject PCA())
("logistic_regression", PyObject LogisticRegression())
julia> clf = Pipeline(estimators)
Pipeline(Tuple{Any,Any}[("reduce_dim", PyObject PCA()), ("logistic_regression", PyObject LogisticRegression())], Any[PyObject PCA(), PyObject LogisticRegression()])
julia> fit!(clf, X, y)
Pipeline(Tuple{Any,Any}[("reduce_dim", PyObject PCA()), ("logistic_regression", PyObject LogisticRegression())], Any[PyObject PCA(), PyObject LogisticRegression()])
Подробные сведения см. в описании ?Pipeline
, ?make_pipeline
и руководстве пользователя.
Объединения признаков
FeatureUnion объединяет несколько объектов преобразователей в новый преобразователь, который объединяет их выходные данные. FeatureUnion содержит список объектов преобразователей. Во время подбора каждый из них подбирается для данных независимо. Для преобразования данных преобразователи применяются параллельно, а векторы выборок, которые они выдают, объединяются в более крупные векторы.
julia> using ScikitLearn.Pipelines: FeatureUnion
julia> @sk_import decomposition: KernelPCA
PyObject <class 'sklearn.decomposition._kernel_pca.KernelPCA'>
julia> estimators = [("linear_pca", PCA()), ("kernel_pca", KernelPCA())]
2-element Array{Tuple{String,PyCall.PyObject},1}:
("linear_pca", PyObject PCA())
("kernel_pca", PyObject KernelPCA())
julia> combined = FeatureUnion(estimators)
FeatureUnion(Tuple{Any,Any}[("linear_pca", PyObject PCA()), ("kernel_pca", PyObject KernelPCA())], 1, nothing)
Подробные сведения см. в описании ?FeatureUnion
и руководстве пользователя.