Sdílet prostřednictvím


kmeans_fl()

Funkce kmeans_fl() je definovaná uživatelem (uživatelem definovaná funkce), která clusterizuje datovou sadu pomocí algoritmu k-means.

Požadavky

  • Modul plug-in Pythonu musí být v clusteru povolený. To se vyžaduje pro vložený Python použitý ve funkci.
  • Modul plug-in Pythonu musí být v databázi povolený. To se vyžaduje pro vložený Python použitý ve funkci.

Syntaxe

T | invoke kmeans_fl(,funkce k cluster_col, )

Přečtěte si další informace o konvencích syntaxe.

Parametry

Název Type Požadováno Popis
k int ✔️ Počet clusterů.
features dynamic ✔️ Pole obsahující názvy sloupců funkcí, které se mají použít pro clustering.
cluster_col string ✔️ Název sloupce pro uložení ID výstupního clusteru pro každý záznam.

Definice funkce

Funkci můžete definovat vložením jejího kódu jako funkce definovanou dotazem nebo vytvořením jako uložené funkce v databázi následujícím způsobem:

Definujte funkci pomocí následujícího příkazu let. Nejsou vyžadována žádná oprávnění.

Důležité

Příkaz let nemůže běžet samostatně. Musí následovat příkaz tabulkového výrazu. Pokud chcete spustit funkční příklad kmeans_fl(), podívejte se na příklad.

let kmeans_fl=(tbl:(*), k:int, features:dynamic, cluster_col:string)
{
    let kwargs = bag_pack('k', k, 'features', features, 'cluster_col', cluster_col);
    let code = ```if 1:

        from sklearn.cluster import KMeans

        k = kargs["k"]
        features = kargs["features"]
        cluster_col = kargs["cluster_col"]

        df1 = df[features]
        km = KMeans(n_clusters=k, random_state=0)
        km.fit(df1)
        result = df
        result[cluster_col] = km.labels_
    ```;
    tbl
    | evaluate python(typeof(*), code, kwargs)
};
// Write your query to use the function here.

Příklad

Následující příklad používá operátor invoke ke spuštění funkce.

Clustering umělé datové sady se třemi clustery

Pokud chcete použít funkci definovanou dotazem, vyvoláte ji po definici vložené funkce.

let kmeans_fl=(tbl:(*), k:int, features:dynamic, cluster_col:string)
{
    let kwargs = bag_pack('k', k, 'features', features, 'cluster_col', cluster_col);
    let code = ```if 1:

        from sklearn.cluster import KMeans

        k = kargs["k"]
        features = kargs["features"]
        cluster_col = kargs["cluster_col"]

        df1 = df[features]
        km = KMeans(n_clusters=k, random_state=0)
        km.fit(df1)
        result = df
        result[cluster_col] = km.labels_
    ```;
    tbl
    | evaluate python(typeof(*), code, kwargs)
};
union 
(range x from 1 to 100 step 1 | extend x=rand()+3, y=rand()+2),
(range x from 101 to 200 step 1 | extend x=rand()+1, y=rand()+4),
(range x from 201 to 300 step 1 | extend x=rand()+2, y=rand()+6)
| extend cluster_id=int(null)
| invoke kmeans_fl(3, bag_pack("x", "y"), "cluster_id")
| render scatterchart with(series=cluster_id)

Snímek obrazovky s bodovým grafem clusteringu K-Means umělé datové sady se třemi clustery

Tato funkce není podporovaná.