# Contains some standard pipelines
# Author: Lukas Snoek [lukassnoek.github.io]
# Contact: lukassnoek@gmail.com
# License: 3 clause BSD
from sklearn.pipeline import Pipeline
from sklearn.svm import SVC
from sklearn.feature_selection import (f_classif, SelectKBest,
SelectPercentile)
from sklearn.preprocessing import StandardScaler
from sklearn.decomposition import PCA
[docs]def create_ftest_kbest_svm(kernel='linear', k=100, **kwargs):
""" Creates an svm-pipeline with f-test feature selection.
Uses SelectKBest from scikit-learn.feature_selection.
Parameters
----------
kernel : str
Kernel for SVM (default: 'linear')
k : int
How many voxels to select (from the k best)
**kwargs
Arbitrary keyword arguments for SVC() initialization.
Returns
-------
ftest_svm : scikit-learn Pipeline object
Pipeline with f-test feature selection and svm.
"""
ftest_svm = Pipeline([
('scaler', StandardScaler()),
('ufs', SelectKBest(f_classif, k=k)),
('svm', SVC(kernel=kernel, **kwargs))
])
return ftest_svm
[docs]def create_ftest_percentile_svm(kernel='linear', perc=10, **kwargs):
""" Creates an svm-pipeline with f-test feature selection.
Uses SelectPercentile from scikit-learn.feature_selection.
Parameters
----------
kernel : str
Kernel for SVM (default: 'linear')
perc : int or float
Percentage of voxels to select
**kwargs
Arbitrary keyword arguments for SVC() initialization.
Returns
-------
ftest_svm : scikit-learn Pipeline object
Pipeline with f-test feature selection and svm.
"""
ftest_svm = Pipeline([
('scaler', StandardScaler()),
('ufs', SelectPercentile(f_classif, percentile=perc)),
('svm', SVC(kernel=kernel, **kwargs))
])
return ftest_svm
[docs]def create_pca_svm(kernel='linear', n_comp=10, whiten=False, **kwargs):
""" Creates an svm-pipeline with f-test feature selection.
Parameters
----------
kernel : str
Kernel for SVM (default: 'linear')
n_comp : int
How many PCA-components to select
whiten : bool
Whether to use whitening in PCA
**kwargs
Arbitrary keyword arguments for SVC() initialization.
Returns
-------
pca_svm : scikit-learn Pipeline object
Pipeline with PCA feature extraction and svm.
"""
pca_svm = Pipeline([
('scaler', StandardScaler()),
('pca', PCA(n_components=n_comp, whiten=whiten)),
('svm', SVC(kernel=kernel, **kwargs))
])
return pca_svm