Hirdetés
- Apple MacBook
- E-book olvasók
- Vezeték nélküli fülhallgatók
- Projektor topic
- Levelek hullnak, hardverek érkeznek
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- Effektíve TKL méretűek a Corsair legújabb, numerikus paddal ellátott klaviatúrái
- Internet Rádió építése (hardver), és programozása
- AMD Ryzen 9 / 7 / 5 7***(X) "Zen 4" (AM5)
- Vezetékes FEJhallgatók
Új hozzászólás Aktív témák
-
rootkiller
őstag
Megfejtettem a saját elképzelésem szerint. Amikor az eredeti klaszterközepekhez hozzárendelem az elemeket akkor számolok költséget. Ezek után generálok egy új klaszterközepet, amit véletlenszerűen valamelyik helyett felhasználok, majd ismételten hozzárendelek elemeket a klaszterekhez és költséget számolok. Ezek után összehasonlítok, és ha az új verzió jobb mint a régi akkor eltárolom a régi klaszterközepeket egy segédtömbbe, majd ezt felülírom az új klaszterközepekkel. Ezek után a while-ban a régi és az új klaszterközép tömbböt összehasonlítom hogy egyenlő-e.
A probléma hogy végtelen ciklust generáltam és nem tudom hogy hol. Itt a kód:
function kmedoid($xdata, $k){
// 1. kezdeti elemek kiválasztása
for($i = 1; $i <= $k; $i++){
$middle[$i] = $i;
}
// 2.
do {
// 3. hozzárendelünk minden elemet a legközelebbi klaszterközéphez
$originalCost = 0;
for($i = 1; $i <= 150; $i++){
for($j = 1; $j <= $k; $j++){
$actual = $middle[$j];
if ($xdata[$i] > $xdata[$actual]){
$distance[$j] = $xdata[$i] - $xdata[$actual];
} else {
$distance[$j] = $xdata[$actual] - $xdata[$i];
}
}
$whichCluster[$i] = array_search(min($distance), $distance);
$originalCost = $originalCost + min($distance);
echo $originalCost . "<br>";
}
// 4. véletlenszerűen választunk egy nem klaszterközepet: 0random
do {
$new = rand(1, 150);
} while (!in_array($new, $middle));
$newMiddle = $middle;
$newMiddle[rand(1, $k)] = $new;
// 5. kiszámoljuk a teljes költséget
$newCost = 0;
for($i = 1; $i <= 150; $i++){
for($j = 1; $j <= $k; $j++){
$actual = $newMiddle[$j];
if ($xdata[$i] > $xdata[$actual]){
$distance[$j] = $xdata[$i] - $xdata[$actual];
} else {
$distance[$j] = $xdata[$actual] - $xdata[$i];
}
}
$whichCluster[$i] = array_search(min($distance), $distance);
$newCost = $newCost + min($distance);
echo $newCost . "<br>";
}
// 6. ha s<0 akkor csere 0j 0rand-al és az az új klaszterközép
if ($newCost < $originalCost){
$lastMiddle = $middle;
$middle = $newMiddle;
echo "felülírva<br>";
} else {
$lastMiddle = $middle;
}
}
// 7. addig amíg nincs változás
while ($middle === $lastMiddle);
}
Új hozzászólás Aktív témák
- 3D nyomtatás kiváló minőségben / számlával / akár 9 színnel / széles anyagválaszték,
- HP,15.6",250 G6,8.gen.core i5 (8X4,0Ghz)8-32GB RAM,256GB-1TB SSD,nagyon jó akku,Win.11,szép
- Dell,14"FullHd IPS,core i5 6440H(fiz.4MAG!),8-16GB DDR4 RAM,Vil.bill,256-512GB SSD,Jó akku,Win.11
- DELL Optiplex Micro 7010 - i5 13500T - 16GB DDR4 - 512GB SSD
- Fujitsu ,15,6",8.gen.i5,világító.bill, 4G LTE,8-32GB/256-512,jó akku,Win.11,szép
- GIGA AKCIÓ!!! AKTIVÁLATLAN iPad Air M2 11" WiFi + CELLULAR 512GB!!! KÉK
- Apple iPhone 15 Pro Max 256GB, Kártyafüggetlen, 1 Év Garanciával
- HIBÁTLAN iPhone 14 256GB Midnight -1 ÉV GARANCIA - Kártyafüggetlen, MS3242
- GYÖNYÖRŰ iPhone 14 Pro Max 256GB Space Black -1 ÉV GARANCIA - Kártyafüggetlen, MS3172
- Apple iPhone 15 Pro 128GB, Kártyafüggetlen, 1 Év Garanciával
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest