Python cosine_simility не работает для матрицы с NaN

Форматирование моего комментария к выбранному ответу (ответ @ Naveed) имеет скремблирование - поэтому добавление этого ответа. Все кредиты принадлежат Naveed.

------------------------------------- ---------------------------------

Просто потрясающе. Мой случай был - у меня есть поле, которое представляет собой массив, поэтому мне пришлось добавить дополнительный цикл.

Мой запрос:

db.getCollection("profile").find({"photos": {$ne: "" }}).forEach(function(e,i) {
    e.photos.forEach(function(url, j) {
        url = url.replace("http://a.com", "https://dev.a.com");
        e.photos[j] = url;
    });
    db.getCollection("profile").save(e);
    eval(printjson(e));
})
1
задан Nadine 17 January 2019 в 20:18
поделиться

3 ответа

Вы можете попробовать этот подход: https://github.com/Midnighter/nadist , в качестве альтернативы вы можете использовать _chk_weights с nan_screen=True, как описано здесь в метапертуре здесь https: / /github.com/scipy/scipy/issues/3870, надеюсь, это поможет.

Я обнаружил, что Midnighter ранее опубликовал ту же проблему в стеке потока: Рассчитать попарно расстояние в scipy с отсутствующими значениями . Там есть некоторые другие решения, но, поскольку он перешел к его цитонизации, держу пари, что они были не лучшими.

0
ответ дан Artyom 17 January 2019 в 20:18
поделиться

Вы можете поменять NaN на 0 и попробовать вычислить косинусное подобие.

0
ответ дан Novak 17 January 2019 в 20:18
поделиться

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

0
ответ дан Nadine 17 January 2019 в 20:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: