Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Usage
microsoftml.rx_oneclass_svm(formula: str,
data: [revoscalepy.datasource.RxDataSource.RxDataSource,
pandas.core.frame.DataFrame], cache_size: float = 100,
kernel: [<function linear_kernel at 0x0000007156EAC8C8>,
<function polynomial_kernel at 0x0000007156EAC950>,
<function rbf_kernel at 0x0000007156EAC7B8>,
<function sigmoid_kernel at 0x0000007156EACA60>] = {'Name': 'RbfKernel',
'Settings': {}}, epsilon: float = 0.001, nu: float = 0.1,
shrink: bool = True, normalize: ['No', 'Warn', 'Auto',
'Yes'] = 'Auto', ml_transforms: list = None,
ml_transform_vars: list = None, row_selection: str = None,
transforms: dict = None, transform_objects: dict = None,
transform_function: str = None,
transform_variables: list = None,
transform_packages: list = None,
transform_environment: dict = None, blocks_per_read: int = None,
report_progress: int = None, verbose: int = 1,
ensemble: microsoftml.modules.ensemble.EnsembleControl = None,
compute_context: revoscalepy.computecontext.RxComputeContext.RxComputeContext = None)
Description
Машинное обучение одного класса поддерживает векторные компьютеры
Сведения
Один класс SVM — это алгоритм обнаружения аномалий. Цель обнаружения аномалий заключается в выявлении выпадающих, которые не относятся к определенному целевому классу. Этот тип SVM является одним классом, так как обучающий набор содержит только примеры из целевого класса. Он определяет, какие свойства являются нормальными для объектов в целевом классе и из этих свойств предсказывает, какие примеры не являются обычными примерами. Это полезно для обнаружения аномалий, так как нехватка примеров обучения является определяющим характером аномалий: как правило, существует очень мало примеров сетевого вторжения, мошенничества или других типов аномального поведения.
Arguments
формула
Формула, как описано в revoscalepy.rx_formula.
Термины взаимодействия и F() в настоящее время не поддерживаются в microsoftml.
данные
Объект источника данных или символьная строка, указывающая XDF-файл или объект кадра данных.
cache_size
Максимальный размер в МБ кэша, в который хранятся данные обучения. Увеличьте это для больших наборов обучения. Значение по умолчанию — 100 МБ.
ядро
Символьная строка, представляющая ядро, используемое для вычислений внутренних продуктов. Дополнительные сведения см. в разделе ma_kernel(). Доступны следующие варианты:
rbf_kernel: радиальное ядро функции. Его параметр представляетсяgammaв терминеexp(-gamma|x-y|^2. Если он не указан, по умолчанию он делится1на количество используемых функций. Например:rbf_kernel(gamma = .1). Это значение по умолчанию.linear_kernel: линейное ядро.polynomial_kernel: многономиальное ядро с именамиaпараметров,biasа такжеdegв термине(a*<x,y> + bias)^deg. Значениеbiasпо умолчанию0. Степень,degзначение по умолчанию3. Еслиaзначение не указано, оно делится1на количество функций.sigmoid_kernel: Сигмоидное ядро с именамиgammaпараметров иcoef0в терминеtanh(gamma*<x,y> + coef0).gammaзначение по умолчанию, разделенное1на количество функций.coef0Параметр по умолчанию0. Например:sigmoid_kernel(gamma = .1, coef0 = 0).
Эпсилон
Пороговое значение для конвергенции оптимизатора. Если улучшение между итерациями меньше порога, алгоритм останавливается и возвращает текущую модель. Значение должно быть больше или равно numpy.finfo(double).eps. Значение по умолчанию — 0.001.
Nu
Компромисс между долями выскользов и числом векторов поддержки (представлено греческой буквой nu). Должно быть от 0 до 1, обычно от 0,1 до 0,5. Значение по умолчанию — 0.1.
shrink
Использует эвристические методы сжатия, если True. В этом случае некоторые примеры будут "сократиться" во время процедуры обучения, что может ускорить обучение. Значение по умолчанию — True.
Нормализации
Указывает тип используемой автоматической нормализации:
"Auto": если требуется нормализация, она выполняется автоматически. Это выбор по умолчанию."No": нормализация не выполняется."Yes": выполняется нормализация."Warn": если требуется нормализация, отображается предупреждение, но нормализация не выполняется.
Нормализация перемасштабирует разнородные диапазоны данных до стандартного масштаба. Масштабирование функций обеспечивает пропорциональность расстояний между точками данных и позволяет различным методам оптимизации, таким как градиентный спуск, быстрее сходиться. Если нормализация выполняется, MaxMin используется нормализатор. Он нормализует значения в интервале [a, b] где -1 <= a <= 0 и b - a = 10 <= b <= 1 . Этот нормализатор сохраняет разреженность, сопоставляя ноль с нулем.
ml_transforms
Указывает список преобразований MicrosoftML для выполнения данных перед обучением или Нет , если преобразования не выполняются. См featurize_text. раздел , categoricalа также categorical_hashсведения о поддерживаемых преобразованиях.
Эти преобразования выполняются после любых указанных преобразований Python.
Значение по умолчанию — None.
ml_transform_vars
Указывает вектор символов имен переменных, используемых или ml_transformsнет , если они не используются.
Значение по умолчанию — None.
row_selection
НЕ ПОДДЕРЖИВАЕТСЯ. Указывает строки (наблюдения) из набора данных, которые должны использоваться моделью с именем логической переменной из набора данных (в кавычках) или логическим выражением с помощью переменных в наборе данных. Рассмотрим пример.
row_selection = "old"используются только наблюдения, в которых значение переменнойoldравноTrue.row_selection = (age > 20) & (age < 65) & (log(income) > 10)Использует только наблюдения, в которых значениеageпеременной составляет от 20 до 65, а значениеlogпеременнойincomeбольше 10.
Выбор строки выполняется после обработки любых преобразований данных (см. аргументы transforms или transform_function). Как и во всех выражениях, row_selection можно определить вне вызова функции с помощью expression функции.
Преобразует
НЕ ПОДДЕРЖИВАЕТСЯ. Выражение формы, представляющей первый раунд преобразований переменных. Как и во всех выражениях, transforms (или row_selection) можно определить вне вызова функции с помощью expression функции.
transform_objects
НЕ ПОДДЕРЖИВАЕТСЯ. Именованный список, содержащий объекты, на которые можно ссылаться, transformstransform_functionи row_selection.
transform_function
Функция преобразования переменной.
transform_variables
Символьный вектор входных переменных набора данных, необходимых для функции преобразования.
transform_packages
НЕ ПОДДЕРЖИВАЕТСЯ. Вектор символов, указывающий дополнительные пакеты Python (за пределами указанных в RxOptions.get_option("transform_packages")) для обеспечения доступности и предварительной загрузки для использования в функциях преобразования переменных.
Например, те, которые явно определены в функциях revoscalepy через их transforms аргументы или transform_function те, которые определены неявно через их formula или row_selection аргументы. Аргумент transform_packages также может быть None, указывающий, что пакеты за пределами RxOptions.get_option("transform_packages") предварительно загружены.
transform_environment
НЕ ПОДДЕРЖИВАЕТСЯ. Определяемая пользователем среда, которая служит родительской средой для всех сред, разработанных внутренне и используется для преобразования данных переменных.
Если transform_environment = Noneвместо этого используется новая среда hash с родительским revoscalepy.baseenv.
blocks_per_read
Указывает количество блоков для чтения для каждого блока данных, считываемого из источника данных.
report_progress
Целочисленное значение, указывающее уровень отчетов о ходе обработки строк:
0: не сообщается о ходе выполнения.1: количество обработанных строк печатается и обновляется.2: отображаются строки, обрабатываемые и сроки.3: обрабатываются строки и сообщаются все сроки.
verbose
Целочисленное значение, указывающее количество нужных выходных данных.
Если 0подробные выходные данные не печатаются во время вычислений. Целые значения от 1 того, чтобы 4 обеспечить увеличение объема информации.
compute_context
Задает контекст, в котором выполняются вычисления, указанные с допустимым revoscalepy. RxComputeContext. В настоящее время локальная и revoscalepy. Поддерживаются контексты вычислений RxInSqlServer.
Ансамбль
Управление параметрами для ensembling.
Возвраты
OneClassSvm Объект с обученной моделью.
Замечание
Этот алгоритм является однопоточным и всегда пытается загрузить весь набор данных в память.
См. также
linear_kernel, , polynomial_kernelrbf_kernelsigmoid_kernel, . rx_predict
Ссылки
Википедия: обнаружение аномалий
Оценка поддержки распространения High-Dimensional
Новые алгоритмы векторов поддержки
LIBSVM: библиотека для векторных компьютеров поддержки
Example
'''
Anomaly Detection.
'''
import numpy
import pandas
from microsoftml import rx_oneclass_svm, rx_predict
from revoscalepy.etl.RxDataStep import rx_data_step
from microsoftml.datasets.datasets import get_dataset
iris = get_dataset("iris")
import sklearn
if sklearn.__version__ < "0.18":
from sklearn.cross_validation import train_test_split
else:
from sklearn.model_selection import train_test_split
irisdf = iris.as_df()
data_train, data_test = train_test_split(irisdf)
# Estimate a One-Class SVM model
model = rx_oneclass_svm(
formula= "~ Sepal_Length + Sepal_Width + Petal_Length + Petal_Width",
data=data_train)
# Add additional non-iris data to the test data set
data_test["isIris"] = 1.0
not_iris = pandas.DataFrame(data=dict(Sepal_Length=[2.5, 2.6],
Sepal_Width=[.75, .9], Petal_Length=[2.5, 2.5],
Petal_Width=[.8, .7], Species=["not iris", "not iris"],
isIris=[0., 0.]))
merged_test = pandas.concat([data_test, not_iris])
scoresdf = rx_predict(model, data=merged_test, extra_vars_to_write=["isIris"])
# Look at the last few observations
print(scoresdf.tail())
Выходные данные:
Automatically adding a MinMax normalization transform, use 'norm=Warn' or 'norm=No' to turn this behavior off.
Beginning processing data.
Rows Read: 112, Read Time: 0, Transform Time: 0
Beginning processing data.
Beginning processing data.
Rows Read: 112, Read Time: 0, Transform Time: 0
Beginning processing data.
Using these libsvm parameters: svm_type=2, nu=0.1, cache_size=100, eps=0.001, shrinking=1, kernel_type=2, gamma=0.25, degree=0, coef0=0
Reconstructed gradient.
optimization finished, #iter = 15
obj = 52.905421, rho = 9.506052
nSV = 12, nBSV = 9
Not training a calibrator because it is not needed.
Elapsed time: 00:00:00.0555122
Elapsed time: 00:00:00.0212389
Beginning processing data.
Rows Read: 40, Read Time: 0, Transform Time: 0
Beginning processing data.
Elapsed time: 00:00:00.0349974
Finished writing 40 rows.
Writing completed.
isIris Score
35 1.0 -0.142141
36 1.0 -0.531449
37 1.0 -0.189874
38 0.0 0.635845
39 0.0 0.555602