Próbuję dopasować przedmioty. Biorąc pod uwagę zestaw przedmiotów, mogę uszeregować w skali od 0 do 100, jak są do siebie podobne. Na przykład, jeśli pozycja to mleko, a pozycja jest również mlekiem, wówczas podobieństwo między i wynosi 100%. Jeśli to soda, wówczas podobieństwo między i może wynosić, być może, 80% i tak dalej.n 1 n 2 n 1 n 2 n 3 n 1 n 3
Próbuję wymyślić, jak pogrupować elementów w grupy podobnych elementów, ale jest to trudny problem. Natrafiam na następujący problem: Koń jest podobny do krowy, która jest podobna do kozy, która jest częściowo podobna do koziego sera, który jest podobny do sera, który jest skorelowany z krakersami. Nie spodziewałbym się jednak, że koń będzie w tej samej grupie co krakersy. Każdy element może być skorelowany parami, ale początek i koniec mogą być inne.
Jakieś pomysły?
źródło
Odpowiedzi:
To, co chcesz tutaj zrobić, to obserwacje z podziału N na klastry K, które wykazują podobne właściwości. Nazywa się to klastrowaniem i więcej informacji można znaleźć tutaj .
Ponieważ masz już liczbową miarę podobieństwa, to sprawia, że myślę o użyciu algorytmu K-Means , w którym działasz w kilku krokach:
Możesz sprawdzić zbieżność, gdy centroidy przestaną się poruszać lub osiągną określony próg.
Zapewniłoby to, że elementy w każdym klastrze są nieco skorelowane i można uzyskać więcej drobnoziarnistych klastrów, zwiększając liczbę klastrów w algorytmie („K”). Znalezienie liczby klastrów zależy od każdego problemu i radzę wypróbować kilka wartości dla swoich problemów, spojrzeć na to, co wychodzi zgrupowane razem i zobaczyć, co ma sens.
Mam nadzieję, że to pomaga.
źródło
Myślę, że to, czego szukasz, nazywa się „analizą skupień” lub „klastrowaniem”. Istnieje wiele różnych algorytmów. W twoim przypadku chciałbyś trochę „klastrowania połączeń”, tj. Grupować elementy razem na podstawie właściwości, która łączy każde z nich.
Przyjrzyj się algorytmom klastrowania w scikits.learn (kod Python) i wymienionym tam odnośnikom.
źródło