Изменения

Перейти к: навигация, поиск

Уменьшение размерности

8 байт убрано, 20:03, 22 января 2019
Нет описания правки
===Примеры кода scikit-learn===
Пример кода, реализующего функцию оценки фильтра на основе коэффициента ранговой корреляции:
// # Импорт библиотек
import pandas as pd
import numpy as np
// # Вспомогательная функция для расчета корреляции
def correlation(X, Y):
return np.cov(X, Y) / np.sqrt(np.var(X) * np.var(Y))
// # Сам фильтр на основе метрики ранговой корреляции // # Аргументы X -- значения объектов датасета для какой-то фичи, Y -- метки этих объектов
def measure_spearmans(X, Y):
xr = pd.Series(X).rank()
Пример кода, реализующего SVM-RFE wrapper:
// # Импорт библиотек
import numpy as np
import pandas as pd
from sklearn import svm
// # X -- наш датасет, Y -- массив меток // # N -- число признаков, которые хотим оставить, step -- сколько фичей удаляется на каждой итерации // # Возвращает массив из булевых переменных размерностью 1x[число признаков], показывающий, отбрасываем признак или нет
def RFE(X, Y, N, step = 10):
// # cache_size нужен, если датасет большой, иначе можно опустить
clfRFE = svm.SVC(kernel='linear', cache_size=1024)
featureCount = X.shape[1]
# Разделение данных на train и test
Xtrain, Xtest, Ytrain, Ytest = train_test_split(X, Y)
 
clf = ... # берем какой-то классификатор
# Обучаем PCA для выделения 5 признаков
Анонимный участник

Навигация