- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- iPhone topik
- Honor Magic V5 - méret a kamera mögött
- Mobil flották
- Samsung Galaxy Z Fold7 - ezt vártuk, de…
- Telekom mobilszolgáltatások
- Egy friss tanulmány szerint az AI-ban utazó cégek 95%-a csak elégeti a pénzét
- Android alkalmazások - szoftver kibeszélő topik
- Fotók, videók mobillal
- Okosóra és okoskiegészítő topik
Ú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
- Autós topik
- Ford topik
- Hálózati / IP kamera
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- GoodSpeed: Bye PET Palack, hello SodaStream
- Mibe tegyem a megtakarításaimat?
- Óra topik
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Bluetooth hangszórók
- További aktív témák...
- Asus ROG Flow Z13 WUXGA 120Hz 2in1 Touch i9-12900H 14mag 16GB 512GB Nvidia RTX 3050Ti W11 Garancia
- Asus ROG Flow Z13 WUXGA 120Hz 2in1 Touch i9-12900H 14mag 16GB 512GB Nvidia RTX 3050Ti Win11 Garancia
- Eladó iPhone 14 Pro 128GB Black Karcmentes
- iPhone 14 Pro 1TB Deep Purple Hatalmas tárhely, 100% akku!
- MSI GTX1660 super 6gb új állapot OEM 2db.
- Gamer PC-Számítógép! Csere-Beszámítás! R5 2600 / RX 570 8GB / 16GB DDR4 / 512 SSD
- Lenovo T14 Thinkpad G2 FHD IPS i5-1145G7 vPro 4.4Ghz 16GB 512GB SSD Intel Iris XE Win11 Pro Garancia
- Szép állapotban levő Apple iPhone 12 Pro Max 128GB / 12 hó jótállás
- BESZÁMÍTÁS! ASUS B450M R5 3500X 16GB DDR4 500GB SSD RTX 2060 Super 8GB Zalman N5 Zalmann 600W
- 121 - Lenovo Legion Pro 5 (16ARX8) - AMD Ryzen 7 7745HX, RTX 4070 - 4 év garancia
Állásajánlatok
Cég: FOTC
Város: Budapest