13/05/03 17:13:34.45
numpy.jsがあったらこんな雰囲気になるんだろうな
var numpy = require(numpy);
function kmeans(data, K) {
var xs = random.randint(0, K, data.length),
ys = zeros(data.length)
while (!allclose(xs, ys)) {
for (var k = 0, ms = []; k < K; k++) {
ms.push(mean(at(data, xs, function(x) {return x==k;})),
{axis: 0});
}
ys = xs;
for (var i = 0, xs = []; i < data.length; i++) {
for (var j = 0, ts = []; j < ms.length; j++) {
ts.push(linalg.norm(data[i].sub(ms[j])));
}
xs.push(nanargmin(ts));
}
}
return xs;
}
やっぱりたいして変わらない
ライブラリの違い