TGViewer
StepOne | Степан Минин StepOne | Степан Минин @steponeit · 3.27K subscribers
Post #544 3.38K
Generic Math in Action

Сейчас я работаю над закрытым пет-проектом, где понадобилась кластеризация данных

Погуглив варианты различных алгоритмов, я пришёл к выводу, что мне подходит класс иерархических кластеризаторов, поскольку они не требуют указания числа кластеров

DBSCAN и HDBSCAN по сути, однако HDBSCAN лучше, так как более устойчив к шуму, и его наличие не влияет на результат

Оказалось, что некий канадец реализовал HDBSCAN в NuGet пакете HdbscanSharp, однако код принуждал использовать тип данных double для датасета, что было неудобным для меня, поскольку я пользовался float и конвертациями заниматься не хотелось

Взглянув на код, стало понятно, что его можно актуализировать внедрением обобщённой математики, поскольку функции вычисления расстояний отделены от алгоритма, и жёсткой зависимости в виде хранения векторов тоже нет

Открыл PR, подождал какое-то время, однако его не вмержили, поскольку было много breaking change, тогда я решил самостоятельно выпустить новый пакет

Получился HdbscanSharp.GenericMath - https://www.nuget.org/packages/HdbscanSharp.GenericMath

Код можно посмотреть на гитхабе - https://github.com/Stepami/HdbscanSharp-GenericMath
www.nuget.org HdbscanSharp.GenericMath 1.0.0 It is the fork of original HdbscanSharp package (2.0.0) refactored to support Generic Math with usage of SIMD accelerated tensor calculations
  • 🔥 18
  • 👍 6
  • ❤‍🔥 3
  • ❤ 2
More from @steponeit
  1. Sep 25, 2026Рассказал как я добавил в HydraScript объекты и методы без классов и сделал протоколы. Стр…
  2. Sep 22, 2026Post #858
  3. Sep 21, 2026Post #857
  4. Sep 15, 2026Напомню, что у меня есть WireMock.Grpc.Protobuf — расширение для тех, кто пишет компонентн…
  5. Sep 12, 2026StepOne — официальный контрибутор FusionCache 🤙 Между набросами можно ещё и код писать Fu…
  6. Sep 11, 2026Стояк работодателей 2026 🤫 Оказывается, год назад я предсказал выход Астры! И вместе с эт…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →