Содержание
Вопросы и ответы об источниках трафика
- Почему не собираются данные по рекламным системам
- Почему много прямых заходов на сайт
- Как узнать откуда идут внутренние переходы на сайт
- Почему в отчетах Метрики много переходов с источником «Не определено»
- Почему могут не фиксироваться переходы с определенных сайтов
Чтобы отчеты Метрики отображали информацию о кампаниях Директа, в Директе на странице Редактирование кампании в блоке Счетчики Яндекс Метрики выберите счетчик, установленный на вашем сайте.
Для сбора данных из других рекламных систем необходимо использовать метки.
Возможно, подобные переходы были совершены роботами. Данные о посещениях сайта роботами доступны в отчете Роботы из группы Мониторинг. Если вы обнаружили всплески неестественного трафика в отчете Роботы и у вас есть основания полагать, что подобная ситуация может повториться, рекомендуем включить фильтрацию роботов по строгим правилам и по поведению.
Возможно, подобные переходы совершались с сайтов, которые работают по протоколу HTTPS, и при переходе с них не передается реферер. В данном случае рекомендуем использовать метку utm_referrer.
Формально у визита проставляется источник Внутренние переходы, когда визит начинается с перехода со страницы, домен которой указан в качестве домена сайта или в качестве дополнительного домена в настройках счетчика. Например, в настройках счетчика указан адрес сайта http://mysite.example/, а визит начинается со страницы http://mysite.example/page1.html и при этом переход на нее был произведен не с какого-то внешнего источника, а со страницы того же сайта — например, http://mysite.example/contacts.html (то есть именно страница contacts.html была указана в качестве реферера при обращении к page1.html).
Такая ситуация может возникнуть по нескольким причинам:
Посетитель пришел на страницу (contacts.html из примера выше), затем не совершал на сайте никаких действий в течение времени, превышающего тайм-аут визита, заданный в настройках счетчика (по умолчанию 30 минут). Тогда следующий его переход на сайте (на страницу page1.html) будет новым визитом, но при этом источником перехода будет тот же сайт.
Решение
С одной стороны, можно увеличить тайм-аут визита. С другой стороны, перед этим надо определить модель использования вашего сайта. Рассмотрим пример с почтой (Яндекс Почтой).
Посетитель зашел, проверил новые письма и оставил открытой страницу в браузере. Через час вернулся и еще раз посмотрел письма, написал ответы. В этом случае будет неверно объединить всю работу пользователя в один визит — это действительно были несколько отдельных сеансов работы с сайтом. Поэтому наличие внутренних переходов является показателем модели использования сайта посетителями.
Посетитель пришел из внешнего источника на страницу сайта, на которой не было счетчика (допустим, contacts.html) и с нее сразу (в рамках того же визита) перешел на страницу сайта со счетчиком (page1.html). Выполнены два условия: визит начался с page1. html (так как о просмотре страницы contacts.html в Метрике нет данных из-за отсутствия на этой странице счетчика), но страница, с которой был переход (contacts.html) принадлежит тому же сайту, что указан в настройках счетчика — http://mysite.example/.
Решение
Рекомендуем установить счетчик Метрики на страницу. В этом случае бывает сложно определить, на какой именно странице не установлен счетчик. Узнать это можно с помощью сегментации.
Чаще всего такая ситуация возникает, если код счетчика установлен некорректно (часть кода счетчика, которая должна быть размещена в теге <noscript>
, размещена вне этого тега).
Все больше сайтов переходят на защищенное HTTPS-соединение. При этом у тех сайтов, которые еще не перешли на защищенное соединение, растет доля прямых заходов. С технической точки зрения, Прямые заходы — это обращения к страницам вашего сайта, при которых браузер посетителя не передал HTTP-заголовок Referer. Обычно этот заголовок содержит URL предыдущей страницы, с которой был сделан переход на ваш сайт. Если поле отсутствует, значит предыдущей страницы не было: например, посетитель вручную ввел адрес в адресную строку браузера.
Организация W3C (World Wide Web Consortium) издала документ Referrer Policy, который содержит рекомендации о передаче этого заголовка: реферер передается при переходе с HTTP на любой тип сайта и при переходе с HTTPS на HTTPS, при переходе с HTTPS на HTTP реферер не передается. Таким образом, если вы покидаете безопасный контур HTTPS-сайтов, браузер не передает по открытым каналам (в нешифрованном виде) адрес последней посещенной вами страницы.
На практике, для владельцев сайтов это означает следующее: если ваш сайт работает по HTTP-протоколу, вы не увидите источник перехода, если этот источник работает по защищенному HTTPS-соединению.
Решение
Рекомендуем перевести ваш сайт на защищенное соединение. Бесплатный сертификат шифрования можно получить благодаря проекту Let’s Encrypt — некоммерческому центру сертификации, поддержанному многими крупными представителями интернет-отрасли. Инструкция по переходу на HTTPS
Если вы являетесь владельцем защищенного интернет-ресурса, но хотите, чтобы при переходе с вашего сайта заголовок Referer передавался даже при переходе на незащищенный сайт, разметьте специальным образом страницы сайта, с которых будет происходить переход на незащищенные ресурсы. Подробно о методах разметки можно прочитать в документе «Referrer Policy» (раздел Referrer Policy Delivery). По данным проекта Can I use такую разметку ссылок поддерживает уже более половины используемых браузеров.
Написать в чат
Обратите внимание: служба поддержки не обзванивает пользователей. Не следуйте указаниям людей, которые вам звонят и представляются службой поддержки Яндекс Метрики.
Неопределенный трафик
18 Октября 2019
Исследование погрешностей учета трафика в различных отчетах Яндекс.Метрики
В последнее время в системе аналитики Яндекс.Метрики по данным счетчиков некоторых сайтов наблюдается разница суммарного поискового трафика за идентичный период между отчетами “Поисковые запросы” и “Поисковые системы”. Ниже приведено исследование данного вопроса с раскрытием причин, влияния на связанные показатели и верную трактовку разницы между показателями данных двух отчетов, далее называемой “неопределенный трафик”.
Для начала рассмотрим метод определения и подсчета трафика в каждом из отчетов:
Отчет «Поисковые запросы»
В отчете приведен список поисковых фраз, по которым посетитель совершил визит на сайт с поисковой выдачи. По каждой фразе можно посмотреть, из каких поисковых систем осуществлялся переход по ней. По статистике, 99% представленных фраз в отчете являются визитами с поисковой системы Яндекс и только 1% со всех остальных поисковиков (Метрика не может определить большую часть запросов с других поисковых систем, по которым были переходы на сайт)
Посмотреть отчет в Метрике:
Отчеты → Стандартные отчеты → Источники → Поисковые запросы.
Отчет «Поисковые системы»
Отчет содержит информацию о поисковых системах, которые привели посетителей на ваш сайт. Данные можно посмотреть как суммарно по всем системам, так и по отдельно взятым поисковикам.
Посмотреть отчет:
Отчеты → Стандартные отчеты → Источники → Поисковые системы.
Неопределенный трафик в Метрике по источнику “Поисковые системы (Яндекс)”:
причины появления, метод расчета
Причины того, почему часть фраз Метрика определить не может объяснены в Яндекс.Помощи. Ссылка на нее тут — https://yandex.ru/support/metrica/sources/search-queries.html. Ниже приведена выдержка оттуда:
Метрика определяет фразы, которые привели посетителей из Поиска Яндекса, по рефереру и Cookie браузера. Cookie выставляется на домен, на который посетитель переходит из результатов поиска. Срок действия cookie ограничен. Метрика может не определить фразу по следующим причинам:
- Срок действия cookie закончился. Например, посетитель набрал запрос в поисковой строке и перешел по ссылке из результатов поиска, после чего оставил страницу открытой на долгое время, затем обновил ее или закрыл.
- Страница, по ссылке на которую перешел посетитель из результатов поиска, перенаправила его на другой домен. Например, когда владелец сайта решил сменить главное зеркало у сайта, поставив на новое зеркало редирект со старого адреса.
- Браузер посетителя блокирует Cookie (отключить Куки позволяют настройки любого браузера, а также в сети много популярных расширений позволяющих их блокировать.
Узнать количество неопределенного трафика в Метрике можно путем сравнения 2-х отчетов за выделенный промежуток времени.
Отчет 1 — “Поисковые запросы”
(Отчеты → Стандартные отчеты → Источники → Поисковые запросы).
Отчет 2 — “Поисковые системы”
(Отчеты → Стандартные отчеты → Источники → Поисковые системы).
В обоих случаях сегментировать только поисковой системой Яндекс.
Вычесть получившийся трафик по результатам “Отчета 1” из “Отчета 2” за идентичный период. Полученное число и будет неопределенным трафиком.
Комментарий компании Яндекс:
“Наши специалисты связывают рост переходов с Поиска Яндекса без поисковых фраз с увеличением переходов по саджесту на Поиске. То есть по поисковой подсказке в строке поиска, еще до окончания набора запроса. Переходы по саджестам часто не несут в себе поисковый запрос. В связи с этим, в отчетах Метрики такие переходы могут быть отмечены как «не определен».
Динамика неопределенного трафика в Метрике
Наша компания проанализировала динамику изменения трафика, который не был определен в Метрике. Для эксперимента было взято 8 коммерческих сайтов разных тематик и на протяжении 12 месяцев (с мая 2018 года по апрель 2019) отслеживалось изменение количества неопределенного трафика, после чего были выведены средние значения суммарно по всем наблюдаемым сайтам.
Данные по сайтам
Сайт 1 | 05.18 | 06.18 | 07.18 | 08.18 | 09.18 | 10.18 | 11.18 | 12.18 | 01.19 | 02.19 | 03.19 | 04.19 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
Всего трафик, Яндекс | 1527 | 1662 | 1666 | 1274 | 1430 | 1728 | 1738 | 1470 | 1244 | 1356 | 1053 | 833 |
Неопр. трафик | 17 | 43 | 27 | 41 | 89 | 124 | 121 | 82 | 117 | 120 | 89 | 66 |
% неопр. трафика | 1 | 3 | 2 | 3 | 6 | 7 | 7 | 6 | 9 | 9 | 8 | 8 |
Сайт 2 | 05.18 | 06.18 | 07.18 | 08.18 | 09.18 | 10.18 | 11.18 | 12.18 | 01.19 | 02.19 | 03.19 | 04.19 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
Всего трафик, Яндекс | 12483 | 10842 | 9887 | 8179 | 7538 | 7943 | 8462 | 8506 | 6585 | 7539 | 8044 | 8606 |
Неопр. трафик | 221 | 234 | 396 | 473 | 399 | 490 | 535 | 469 | 372 | 453 | 583 | 711 |
% неопр. трафика | 2 | 2 | 4 | 6 | 5 | 6 | 6 | 6 | 6 | 6 | 7 | 8 |
Сайт 3 | 05.18 | 06.18 | 07.18 | 08.18 | 09.18 | 10.18 | 11.18 | 12.18 | 01.19 | 02.19 | 03.19 | 04.19 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
Всего трафик, Яндекс | 18478 | 18852 | 19403 | 21051 | 20828 | 23504 | 22317 | 23275 | 22449 | 25849 | 28572 | 27809 |
Неопр. трафик | 517 | 554 | 845 | 1051 | 1087 | 1624 | 1632 | 1437 | 1807 | 2135 | 2473 | 3250 |
% неопр. трафика | 3 | 3 | 4 | 5 | 5 | 7 | 7 | 6 | 8 | 8 | 9 | 12 |
Сайт 4 | 05.18 | 06.18 | 07.18 | 08.18 | 09.18 | 10.18 | 11.18 | 12.18 | 01.19 | 02.19 | 03.19 | 04.19 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
Всего трафик, Яндекс | 11436 | 12344 | 14129 | 17931 | 17443 | 24549 | 35688 | 57843 | 39955 | 31528 | 36679 | 30475 |
Неопр. трафик | 326 | 334 | 416 | 766 | 816 | 1688 | 2961 | 5529 | 3958 | 3032 | 3880 | 4200 |
% неопр. трафика | 3 | 3 | 3 | 4 | 5 | 7 | 8 | 10 | 10 | 10 | 11 | 14 |
Сайт 5 | 05.18 | 06.18 | 07.18 | 08.18 | 09.18 | 10.18 | 11.18 | 12.18 | 01.19 | 02.19 | 03.19 | 04.19 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
Всего трафик, Яндекс | 4518 | 4524 | 4413 | 4592 | 4062 | 4597 | 5117 | 5018 | 4189 | 4824 | 4464 | 4632 |
Неопр. трафик | 152 | 124 | 171 | 200 | 259 | 299 | 435 | 430 | 349 | 393 | 346 | 456 |
% неопр. трафика | 3 | 3 | 4 | 4 | 6 | 7 | 9 | 9 | 8 | 8 | 8 | 10 |
Сайт 6 | 05.18 | 06.18 | 07.18 | 08.18 | 09.18 | 10.18 | 11.18 | 12.18 | 01.19 | 02.19 | 03.19 | 04.19 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
Всего трафик, Яндекс | 13535 | 12417 | 12253 | 13486 | 15209 | 20240 | 18574 | 13186 | 14602 | 14805 | 15572 | 15658 |
Неопр. трафик | 77 | 122 | 425 | 615 | 733 | 1209 | 1190 | 940 | 905 | 1035 | 1183 | 1171 |
% неопр. трафика | 1 | 1 | 3 | 5 | 5 | 6 | 6 | 7 | 6 | 7 | 8 | 7 |
Сайт 7 | 05.18 | 06.18 | 07.18 | 08.18 | 09.18 | 10.18 | 11.18 | 12.18 | 01.19 | 02.19 | 03.19 | 04.19 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
Всего трафик, Яндекс | 6381 | 6093 | 6757 | 7049 | 4225 | 8581 | 9424 | 6391 | 6398 | 6916 | 5795 | 3599 |
Неопр. трафик | 102 | 139 | 309 | 358 | 253 | 546 | 594 | 629 | 764 | 804 | 695 | 317 |
% неопр. трафика | 2 | 2 | 5 | 5 | 6 | 6 | 6 | 10 | 12 | 12 | 12 | 9 |
Сайт 8 | 05.18 | 06.18 | 07.18 | 08.18 | 09.18 | 10.18 | 11.18 | 12.18 | 01.19 | 02.19 | 03.19 | 04.19 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
Всего трафик, Яндекс | 5043 | 5128 | 4871 | 3573 | 4456 | 4335 | 6597 | 6540 | 5584 | 6063 | 6035 | 4443 |
Неопр. трафик | 117 | 124 | 211 | 326 | 520 | 525 | 518 | 603 | 553 | 882 | 959 | 533 |
% неопр. трафика | 2 | 2 | 4 | 9 | 12 | 12 | 8 | 9 | 10 | 15 | 16 | 12 |
Суммарные данные по сайтам
Сумма | 05.18 | 06.18 | 07.18 | 08.18 | 09.18 | 10.18 | 11.18 | 12.18 | 01.19 | 02.19 | 03.19 | 04.19 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
Всего трафик, Яндекс | 99332 | 92943 | 95870 | 101148 | 96660 | 121900 | 134655 | 149519 | 130212 | 128707 | 131555 | 125640 |
Неопр. трафик | 1529 | 1674 | 2800 | 3830 | 4156 | 6505 | 7986 | 10119 | 8825 | 8854 | 10208 | 10704 |
% неопр. трафика | 2 | 2 | 3 | 4 | 4 | 5 | 6 | 7 | 7 | 7 | 8 | 9 |
График 1. Суммарный трафик анализируемых сайтов
По результатам видим очень сильный рост неопределенного трафика за последний год — с 2 до 9 процентов. Из-за этого встал вопрос, что за трафик не определяется Метрикой — коммерческий или брендовый.
Чтобы это узнать дополнительно нашей компанией было оценено общее количество брендового трафика (на тех же 8 сайтах за тот же промежуток времени).
Сайт 1 | 05. 18 | 06.18 | 07.18 | 08.18 | 09.18 | 10.18 | 11.18 | 12.18 | 01.19 | 02.19 | 03.19 | 04.19 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
Всего Яндекс | 1527 | 1662 | 1666 | 1274 | 1430 | 1728 | 1738 | 1470 | 1244 | 1356 | 1053 | 833 |
Абсолютный бренд | 196 | 259 | 246 | 345 | 389 | 353 | 243 | 208 | 270 | 284 | 357 | 284 |
Сайт 2 | 05.18 | 06.18 | 07.18 | 08. 18 | 09.18 | 10.18 | 11.18 | 12.18 | 01.19 | 02.19 | 03.19 | 04.19 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
Всего Яндекс | 12483 | 10842 | 9887 | 8179 | 7538 | 7943 | 8462 | 8506 | 6585 | 7539 | 8044 | 8606 |
Абсолютный бренд | 245 | 106 | 190 | 154 | 143 | 75 | 79 | 80 | 124 | 71 | 149 | 158 |
Сайт 3 | 05.18 | 06.18 | 07.18 | 08.18 | 09.18 | 10.18 | 11. 18 | 12.18 | 01.19 | 02.19 | 03.19 | 04.19 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
Всего Яндекс | 18478 | 18852 | 19403 | 21051 | 20828 | 23504 | 22317 | 23275 | 22449 | 25849 | 28572 | 27809 |
Абсолютный бренд | 17243 | 17200 | 17630 | 18800 | 18754 | 20786 | 19651 | 20746 | 19816 | 22765 | 25055 | 23577 |
Сайт 4 | 05.18 | 06.18 | 07.18 | 08.18 | 09.18 | 10.18 | 11.18 | 12.18 | 01. 19 | 02.19 | 03.19 | 04.19 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
Всего Яндекс | 11436 | 12344 | 14129 | 17931 | 17443 | 24549 | 35688 | 57843 | 39955 | 31528 | 36679 | 30475 |
Абсолютный бренд | 5888 | 6365 | 7542 | 8926 | 7815 | 13259 | 19963 | 34004 | 24478 | 19377 | 22303 | 18130 |
Сайт 5 | 05.18 | 06.18 | 07.18 | 08.18 | 09.18 | 10.18 | 11.18 | 12.18 | 01.19 | 02.19 | 03. 19 | 04.19 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
Всего Яндекс | 4518 | 4524 | 4413 | 4592 | 4062 | 4597 | 5117 | 5018 | 4189 | 4824 | 4464 | 4632 |
Абсолютный бренд | 1659 | 1408 | 1400 | 1318 | 1255 | 1504 | 1264 | 1331 | 1344 | 1551 | 1400 | 1420 |
Сайт 6 | 05.18 | 06.18 | 07.18 | 08.18 | 09.18 | 10.18 | 11.18 | 12.18 | 01.19 | 02.19 | 03.19 | 04.19 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
Всего Яндекс | 13535 | 12417 | 12253 | 13486 | 15209 | 20240 | 18574 | 13186 | 14602 | 14805 | 15572 | 15658 |
Абсолютный бренд | 9555 | 8115 | 7570 | 7980 | 8686 | 11038 | 10083 | 7103 | 7396 | 7987 | 7626 | 8113 |
Сайт 7 | 05. 18 | 06.18 | 07.18 | 08.18 | 09.18 | 10.18 | 11.18 | 12.18 | 01.19 | 02.19 | 03.19 | 04.19 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
Всего Яндекс | 6381 | 6093 | 6757 | 7049 | 4225 | 8581 | 9424 | 6391 | 6398 | 6916 | 5795 | 3599 |
Абсолютный бренд | 1276 | 1340 | 1284 | 1480 | 930 | 1802 | 2168 | 1342 | 1536 | 1452 | 1275 | 756 |
Сайт 8 | 05.18 | 06.18 | 07.18 | 08. 18 | 09.18 | 10.18 | 11.18 | 12.18 | 01.19 | 02.19 | 03.19 | 04.19 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
Всего Яндекс | 5043 | 5128 | 4871 | 3573 | 4456 | 4335 | 6597 | 6540 | 5584 | 6063 | 6035 | 4443 |
Абсолютный бренд | 296 | 150 | 326 | 195 | 236 | 229 | 182 | 178 | 252 | 207 | 203 | 117 |
По результатам изменения количества брендового трафика мы видим, что он либо остался на одном уровне, либо вырос. Уменьшения брендового трафика не произошло из чего следует вывод, что данный трафик не ушел в “неопределенный” и тот рост, что есть в неопределенном трафике — это трафик по небрендовым запросам.
Этот вывод также подтверждается комментарием специалистов Яндекса о том, что неопределенный трафик — трафик по саджестам, поскольку доля брендов, которые попадают в саджест, минимальна.
python 3.x — NameError: имя «метрика» не определено
Задавать вопрос
спросил
Изменено
2 года, 8 месяцев назад
Просмотрено
43к раз
Выдает ошибку в расчете точности метрик. Я импортировал библиотеку для расчета метрик точности, но все равно выдает ошибку, что имя метрики не определено
из sklearn.feature_extraction.text импорт TfidfVectorizer tf_idf_vect = TfidfVectorizer() обзоры_tfidf = tf_idf_vect.fit_transform (x_train ['question_text']. значения) обзоры_tfidf1 = tf_idf_vect. transform(x_cv['question_text'].значения) обзоры_tfidf2 = tf_idf_vect.transform (тест ['question_text']. значения) из sklearn.model_selection импортировать GridSearchCV из sklearn.naive_bayes импортировать BernoulliNB импортировать sklearn.metrics б = БернуллиNB() param_grid = {'alpha':[1000,100,10,1,0.1,0.01,0.001]} # параметры, которые нам нужно попробовать на классификаторе gsv = GridSearchCV(nb,param_grid,cv=2,verbose=1,n_jobs=-1,оценка='f1') gsv.fit (обзоры_tfidf, y_train) nb = Бернулли NB (альфа = 0,1) nb.fit (обзоры_tfidf, y_train) train_pred = nb.predict(reviews_tfidf) cv_pred = nb.predict (отзывы_tfidf1) test_pred = nb.predict (обзоры_tfidf2) print("Точность набора поездов: {}".format(metrics.accuracy_score(train_pred, y_train))) print("ROC набора поездов: {}".format(metrics.roc_auc_score(train_pred, y_train))) print("Оценка Train Set F1: {}\n".format(metrics.f1_score(train_pred, y_train))) print("Точность набора проверки: {}".format(metrics.accuracy_score(cv_pred, y_cv))) print("Проверочный набор ROC: {}". format(metrics.roc_auc_score(cv_pred, y_cv))) print("Проверочный набор F1 Score: {}\n".format(metrics.f1_score(cv_pred, y_cv))) print("Матрица путаницы тестового набора:\n [[TN FP]\n [FN TP] ]\n") df_cm = pd.DataFrame (confusion_matrix (y_test, y_pred), диапазон (2), диапазон (2)) sns.set(font_scale=1.4)#для размера метки sns.heatmap(df_cm, annot=True,annot_kws={"size": 16}, fmt='g') NameErrorTraceback (последний последний вызов)в <модуль>() 16 cv_pred = nb.predict(reviews_tfidf1) 17 test_pred = nb.predict(reviews_tfidf2) ---> 18 print("Точность набора поездов: {}".format(metrics.accuracy_score(train_pred, y_train))) 19 print("ROC набора поездов: {}".format(metrics.roc_auc_score(train_pred, y_train))) 20 print("Оценка Train Set F1: {}\n".format(metrics.f1_score(train_pred, y_train))) NameError: имя «метрики» не определено
- python-3.x
- sklearn-панды
3
Попробуйте изменить
import sklearn. metrics import precision_score
to:
импортировать sklearn.metrics как метрики
Взгляните на это, чтобы лучше понять, как работает импорт: https://www.codementor.io/sheena/python-path-virtualenv-import-for-beginners-du107r3o1
1
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google
Зарегистрироваться через Facebook
Зарегистрируйтесь, используя адрес электронной почты и пароль
Опубликовать как гость
Электронная почта
Требуется, но не отображается
Опубликовать как гость
Электронная почта
Требуется, но не отображается
undefined — создание класса Python для общей формулы метрики расстояния и получение ошибки «NameError: имя ‘p’ не определено»
Я создаю класс в Python для общей формулы метрики расстояния и получаю ошибка: «NameError: имя «p» не определено». Код для класса и теста и ошибка («NameError: имя ‘p’ не определено») приведены ниже, а также встроенные комментарии, описывающие проблему.
Вот код класса:
класс Lp_distance_metric_general_formula (объект): """ Этот класс использует общую формулу метрики расстояния Lp и устанавливает p равным значению, предоставленному пользователем. Это приводит к получению метрики расстояния для определенного метрического пространства и вычислению расстояния вектора в этом метрическом пространстве. Пример ------- Если пользователь устанавливает p = 2, то выводится формула евклидова расстояния. Если пользователь устанавливает p = 1, то выводится формула расстояния такси. Примечание ---- Можно использовать значения p меньше 1, но это особые случаи, которые мы будем игнорировать. Эти специальные значения интересны для академических целей, но на практике вам, скорее всего, не нужно знать о них. """ def __init__(я, p=2, reg_strength = 1.0): """ Параметры ---------- p: целое число или число с плавающей запятой значение p, используемое для вычисления расстояния вектора в определенном метрическом пространстве reg_strength: int или float обычно устанавливается значение меньше 1,0, чтобы уменьшить силу метрики расстояния при использовании в качестве регуляризатора модели. оставьте это значение равным 1,0 при измерении векторных норм (т.е. длин векторов) """ assert p >=1 , «значение p должно быть больше или равно 1» я.р = р self.reg_strength = reg_strength определение calc_squared_vector_comps (я): # возводим каждую компоненту вектора в self.x в степень p # сохранить результат в self.squared_vector_comps # ВАШ КОД ЗДЕСЬ self.squared_vector_comps = (self.x)**p # вызвать NotImplementedError() def calc_sum_of_squared_comp (я): # возьмем сумму квадратов компонентов в self.squared_vector_comps # сохранить в self.sum_of_squared_comp # подсказка: используйте tf.reduce_sum # ВАШ КОД ЗДЕСЬ self.sum_of_squared_comp = tf.reduce_sum(self.squared_vector_comps) #поднять не реализованную ошибку() определение calc_vector_norm (я): # взять корень 1/p из self.sum_of_squared_comp, чтобы вычислить норму, т.е. ||x|| # сохранить результат в self. 1/𝑝 self.calc_vector_norm() # вернуть векторную норму, масштабированную штрафом регуляризации # мы говорим штраф, потому что значение обычно меньше 1,0, тем самым уменьшая норму вернуть self.reg_strength * self.vector_norm
Вот код для теста:
# создайте экземпляр класса модульного теста, который будет проверять расчеты методов Lp_distance_metric_general_formula.
тесты = Test_distance_metric_solution()
# создать экземпляр Lp_distance_metric_general_formula, установить p = 2 для получения евклидовой метрики расстояния
lp = Lp_distance_metric_general_formula (p = 2, reg_strength = 1,0)
# не изменяйте этот test_vector
# Test_distance_metric_solution предполагает, что вы используете именно этот test_vector
test_vector = np.array([1., 2.])
лп (тест_вектор)
# проверить вычисления, которые выполняются в каждом из следующих методов класса lp
test.test_squared_vector_comps(lp.squared_vector_comps)
test.test_sum_of_squared_comp(lp.