Подход и проблема:
Нормализация. Я начал с нормализации положения каждой звезды, чтобы сформировать сферу, масштабируя их векторы положения до фиксированного радиуса.
Четная точка Распределение: я создал 1000 равномерно расположенных точек на сфере, используя выборку сферы Фибоначчи.
Первоначальное сопоставление: Сопоставление каждой точки с ближайшей звездой сработало хорошо. без учета яркости звезд.
Распределение по категориям: Проблема возникает, когда я пытаюсь включить желаемое распределение яркости звезд. Категории требуют определенных пропорций по поверхности сферы, но я изо всех сил стараюсь поддерживать равномерное распределение при классификации по яркости.
Текущий метод: Моя последняя попытка заключалась в случайном перетасовке. сгенерированные точки, а затем присваивая их звездам в зависимости от их категории яркости. Например, каждый 1,9-й балл достается звезде категории яркости «8». Однако этот метод не смог обеспечить требуемого равномерного распределения, особенно потому, что звезды категории «8» редки, но достаточно многочисленны, чтобы соответствовать требованиям распределения.
Код: Выделить всё
import pandas as pd
import numpy as np
from sklearn.neighbors import NearestNeighbors
def classify_stars(vmag):
if vmag >= 10:
return '1'
elif 7
Подробнее здесь: [url]https://stackoverflow.com/questions/78480373/evenly-distribute-stars-on-a-sphere-according-to-categories[/url]