K means演算法的引數詳解

2021-10-10 19:24:37 字數 1548 閱讀 6810

引數名稱

預設值及輸入型別

引數解釋

algorithm

預設:auto

有auto、full和elkan三種選擇。

algorithm: 優化演算法的選擇,有auto、full和elkan三種選擇。

full就是一般意義上的k-means演算法,

elkan是使用的elkan k-means演算法。

auto則會根據資料值是否是稀疏的(稀疏一般指是有大量缺失值),來決定如何選擇full和elkan。如果資料是稠密的,就選擇elkan k-means,否則就使用普通的kmeans演算法。

copy_x

true

主要起作用於提前計算距離的情況,如果是true,則表示在源資料的副本上提前計算距離時,不會修改源資料。

init

預設值為『k-means++』 有三個可選值:『k-means++』、『random』、或者傳遞乙個ndarray向量。

(1)『k-means++』 用一種特殊的方法選定初始質心從而能加速迭代過程的收斂

(1)、從輸入的資料點集合(要求有k個聚類)中隨機選擇乙個點作為第乙個聚類中心;(2)、對於資料集中的每乙個點x,計算它與最近聚類中心(指已選擇的聚類中心)的距離d(x);(3)、選擇乙個新的資料點作為新的聚類中心,選擇的原則是:d(x)較大的點,被選取作為聚類中心的概率較大;(4)、重複2和3直到k個聚類中心被選出來

(2)『random』 隨機從訓練資料中選取初始質心。

(3)如果傳遞的是乙個ndarray,則應該形如 (n_clusters, n_features) 並給出初始質心。

max_iter

預設值為300 int型,

最大迭代數。

n_clusters

預設為8    int型

生成的聚類數,

n_init

預設值為10

int型

用不同的聚類中心初始化值執行演算法的次數,最終解是在inertia意義下選出的最優結果。

n_jobs

int型。

指定計算所用的程序數。內部原理是同時進行n_init指定次數的計算。

-1,則用所有的cpu進行運算。

若值為1,則不進行並行運算

若值小於-1,為-2,則用到的cpu數為總cpu數減1。

precompute_distances

預設值是auto

auto,true,false三個引數值可選

是否需要提前計算距離

如果選擇auto,當樣本數*質心數》12兆的時候,就不會提前進行計算,如果小於則會與提前計算。提前計算距離會讓聚類速度很快,但是也會消耗很多記憶體。

random_state

預設值為numpy.randomstate 型別,

還可以選擇int型

用於初始化質心的生成器(generator)。如果值為乙個整數,則確定乙個seed。

tol1e-4

float型,容忍的最小誤差,當誤差小於tol就會退出迭代,與inertia結合來確定收斂條件。

verbose

預設為0

是否輸出詳細資訊,

Mahout 中 kmeans的引數

distancemeasure measure 資料點間的距離計算方法,引數可缺,預設是 squaredeuclidean 算方法 提供引數值 chebyshevdistancemeasure 切比雪夫距離 cosinedistancemeasure 余弦距離 euclideandistanceme...

聚類學習KMeans演算法各引數的含義

聚類學習kmeans演算法各引數的含義 kmeans函式的引數講解 n clusters 整型,預設值為8,表示生成的聚類數 max iter 整型,預設值為300,表示執行一次kmeans演算法所需要的最大迭代數 n init 整型,預設值為10,表示用不同的聚類中心初始化值執行演算法的次數最終解...

KMeans演算法的實現

咱走的不是流量,走的是心 include include include include include include using namespace std define length 5 資料維數 每個資料集,5維向量 define k 5 類別數 分為5類 define psize 50 資...