Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
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
Machine Learning Egy osztály támogatása vektorgépek
Részletek
Az egyosztályos SVM egy anomáliadetektálási algoritmus. Az anomáliadetektálás célja olyan kiugró értékek azonosítása, amelyek nem tartoznak valamilyen célosztályhoz. Az SVM ilyen típusa egyosztályos, mert a betanítási csoport csak a célosztályból származó példákat tartalmaz. Ebből arra következtet, hogy a célosztály objektumai milyen tulajdonságokat használnak, és ezekből a tulajdonságokból előrejelzi, hogy mely példák különböznek a normál példáktól. Ez azért hasznos az anomáliadetektáláshoz, mert a betanítási példák szűkössége az anomáliák meghatározó karaktere: általában nagyon kevés példa van hálózati behatolásra, csalásra vagy egyéb rendellenes viselkedésre.
Arguments
képlet
A képlet az revoscalepy.rx_formula.
A microsoftml jelenleg nem támogatja az interakciós feltételeketF().
adat
. xdf-fájlt vagy adatkeret-objektumot meghatározó adatforrás-objektum vagy karaktersztring.
cache_size
A betanítási adatokat tároló gyorsítótár maximális mérete MB-ban. Növelje ezt a nagy betanítási csoportok esetében. Az alapértelmezett érték 100 MB.
kernel
A belső termékek számításához használt kernelt jelképező karaktersztring. További információért lásd ma_kernel(). A következő lehetőségek érhetők el:
rbf_kernel: Radiális alapfüggvény kernel. Paramétere a kifejezésbenexp(-gamma|x-y|^2szerepelgamma. Ha nincs megadva, az alapértelmezés szerint1a használt funkciók számával van osztva. Például:rbf_kernel(gamma = .1). Ez az alapértelmezett érték.linear_kernel: Lineáris kernel.polynomial_kernel: Polinom kernel paraméternevekkela,biasésdega kifejezésben(a*<x,y> + bias)^deg. Azbiasalapértelmezett érték a következő.0A fok,degaz alapértelmezett érték a következő.3Haanincs megadva, akkor a1funkció a funkciók számával van osztva.sigmoid_kernel: Sigmoid kernel paraméternevekkelgammaéscoef0a kifejezésbentanh(gamma*<x,y> + coef0).gammaalapértelmezés szerint1osztva a funkciók számával. A paramétercoef0alapértelmezés szerint a következő.0Például:sigmoid_kernel(gamma = .1, coef0 = 0).
Epsilon
Az optimalizáló konvergenciájának küszöbértéke. Ha az iterációk közötti javulás kisebb, mint a küszöbérték, az algoritmus leáll, és visszaadja az aktuális modellt. Az értéknek nagyobbnak vagy egyenlőnek numpy.finfo(double).epskell lennie. Az alapértelmezett érték 0,001.
Nu
A kiugró értékek törtrésze és a támogató vektorok száma közötti kompromisszum (amelyet a görög nu betű jelöl). 0 és 1 között kell lennie, általában 0,1 és 0,5 között. Az alapértelmezett érték 0,1.
shrink
A zsugorító heurisztikus ha True. Ebben az esetben egyes minták "zsugorulnak" a betanítási eljárás során, ami felgyorsíthatja a betanítást. Az alapértelmezett érték a True.
Normalizálni
A használt automatikus normalizálás típusát adja meg:
"Auto": ha normalizálásra van szükség, a rendszer automatikusan végrehajtja. Ez az alapértelmezett választás."No": nem történik normalizálás."Yes": normalizálás történik."Warn": ha normalizálásra van szükség, figyelmeztető üzenet jelenik meg, de a normalizálás nem történik meg.
A normalizálás az adattartományokat standard méretezésre skálázza át. A funkciók skálázása biztosítja az adatpontok közötti távolságok arányosak, és lehetővé teszi a különböző optimalizálási módszereket, például a színátmenetes süllyedést, hogy sokkal gyorsabban konvergáljanak. Normalizálás esetén a rendszer normalizálót MaxMin használ. Normalizálja az értékeket egy intervallumban [a, b] ahol -1 <= a <= 0 és 0 <= b <= 1 .b - a = 1 Ez a normalizáló a nulláról nullára való leképezéssel megőrzi a ritkaságot.
ml_transforms
Megadja azon MicrosoftML-átalakítások listáját, amelyeket betanítás előtt el kell végezni az adatokon, vagy Nincs , ha nem kell átalakításokat végrehajtani.
categoricalA featurize_texttámogatott átalakításokat lásd, és categorical_hashtekintse meg.
Ezek az átalakítások a megadott Python-átalakítások után lesznek végrehajtva.
Az alapértelmezett érték: Nincs.
ml_transform_vars
A változónevek ml_transforms karaktervektorát adja meg , ha nincs .
Az alapértelmezett érték: Nincs.
row_selection
NEM TÁMOGATOTT. Az adathalmaz azon sorait (megfigyeléseit) adja meg, amelyeket a modell az adathalmazból származó logikai változó nevével (idézőjelekben) vagy az adathalmaz változóit használó logikai kifejezéssel használ. Például:
row_selection = "old"csak olyan megfigyeléseket használ, amelyekben a változóoldértéke .Truerow_selection = (age > 20) & (age < 65) & (log(income) > 10)csak olyan megfigyeléseket használ, amelyekben aageváltozó értéke 20 és 65 között van, és alogincomeváltozó értéke nagyobb, mint 10.
A sorkijelölés az adatátalakítások feldolgozása után történik (lásd az argumentumokat transforms vagy transform_functiona ). Az összes kifejezéshez hasonlóan a row_selection függvényhíváson kívül is definiálható a expression függvény használatával.
Átalakítja
NEM TÁMOGATOTT. Az űrlap kifejezése, amely a változóátalakítások első fordulóját jelöli. Az összes kifejezéshez transforms hasonlóan (vagy row_selection) a függvényhíváson kívül is definiálható a expression függvény használatával.
transform_objects
NEM TÁMOGATOTT. Névvel ellátott lista, amely olyan objektumokat tartalmaz, amelyekre hivatkozni transformslehet.row_selectiontransform_function
transform_function
A változó transzformációs függvénye.
transform_variables
A bemeneti adathalmaz változóinak karaktervektora, amely az átalakítási függvényhez szükséges.
transform_packages
NEM TÁMOGATOTT. Egy karaktervektor, amely további Python-csomagokat határoz meg (a megadottakon RxOptions.get_option("transform_packages")kívül), amelyeket elérhetővé kell tenni és előre be kell tölteni a változóátalakítási függvényekben való használatra.
A revoscalepy függvényekben explicit módon definiált függvények például azok és transform_function argumentumaik vagy argumentumaik transformsformularow_selection által implicit módon definiált függvények. Az transform_packages argumentum lehet Nincs is, ami azt jelzi, hogy nincsenek előre betöltött csomagok RxOptions.get_option("transform_packages") .
transform_environment
NEM TÁMOGATOTT. Felhasználó által definiált környezet, amely szülőként szolgál minden belső fejlesztésű és változó adatátalakításhoz használt környezethez.
Ha transform_environment = Nonea rendszer ehelyett egy új "kivonat" környezetet használ a szülő revoscalepy.baseenv használatával.
blocks_per_read
Megadja az adatforrásból beolvasott adattömbök olvasási blokkjainak számát.
report_progress
Egész számérték, amely a sorfeldolgozási folyamat jelentési szintjét határozza meg:
0: nem jelent előrehaladást.1: a feldolgozott sorok száma ki lesz nyomtatva és frissítve.2: a feldolgozott sorok és az időzítések jelentése.3: feldolgozott sorok és az összes időzítés jelentése.
bővebb
Egy egész szám, amely meghatározza a kívánt kimenet mennyiségét.
Ha 0, a számítások során a rendszer nem nyomtat részletes kimenetet. Egész számértékek a 1 növekvő mennyiségű információ biztosításához 4 .
compute_context
Beállítja a számítások végrehajtásának környezetét egy érvényes revoscalepy-val megadva. RxComputeContext. Jelenleg helyi és revoscalepy. Az RxInSqlServer számítási környezetek támogatottak.
Együttes
Vezérlési paraméterek a ensemblinghez.
Visszatérítések
A OneClassSvm betanított modellel rendelkező objektum.
Megjegyzés:
Ez az algoritmus egyszálas, és mindig megpróbálja betölteni a teljes adathalmazt a memóriába.
Lásd még
linear_kernel, polynomial_kernel, rbf_kernel, sigmoid_kernelrx_predict.
Hivatkozások
Microsoft Azure Machine Learning Studio (klasszikus): One-Class vektorgép támogatása
High-Dimensional-disztribúció támogatásának becslése
Új támogatási vektor algoritmusok
LIBSVM: Könyvtár a vektorgépek támogatásához
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())
Kimenet:
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