Сортировать товар по обзору с учетом количества отзывов - PullRequest
2 голосов
/ 10 июля 2020

У меня проблема, аналогичная этому вопросу , где я хотел бы отсортировать элементы, но с поправкой на количество отзывов. Переход по ссылке в принятом ответе приводит меня к этому ответу , который предлагает простое решение: добавить несколько средних значений к среднему и отсортировать по этому «скорректированному среднему». Тем не менее, он также предлагает более строгий подход: «добавлять ? обзоров со средним значением ? для каждого продукта и настраивать ?, ? с использованием перекрестной проверки, чтобы максимизировать некоторые измерения точности прогнозов. Я бы начал с в качестве средней оценки в целом. набор данных и поиграйте со значениями ?. "

Мне трудно понять, как реализовать этот строгий подход в коде. Любые указатели были бы полезны.

1 Ответ

2 голосов
/ 10 июля 2020

Я считаю, что более строгий подход просто относится к манипулированию более простой версией, чтобы использовать определенные c значения, которые дают желаемый результат, который вам нужен.

Более простой подход предлагает такую ​​сортировку -

    books.sort(
        key=lambda book: mean(book.reviews + [3, 3, 3]),
        reverse=True
    )

Вместо этого вы можете сделать что-то вроде этого -

books.sort(
    key=lambda book: mean(book.reviews + [μ] * n),
    reverse=True
)

Где μ - средний рейтинг по всем книгам, а n - число, которое вы бы задали, проверьте результат, а затем отрегулируйте снова в зависимости от того, работала ли сортировка так, как вы хотели. (Похоже на подход «догадаться и проверить»!) Чем выше значение n, тем выше предпочтение отдается книгам с большим количеством рецензий.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...