roc () в пакете pROC - использование Control и Cases с его контекстом

Что такое JSONP?

Важная вещь, которую нужно запомнить с помощью jsonp, заключается в том, что на самом деле это не протокол или тип данных. Его просто способ загрузки скрипта «на лету» и обработки скрипта, который вводится на страницу. В духе JSONP это означает введение нового javascript-объекта с сервера в клиентское приложение / скрипт.

Когда нужен JSONP?

Это один способ разрешить один домен для доступа / обработки данных от другого на одной странице асинхронно. Прежде всего, он используется для переопределения ограничений CORS (Cross Origin Resource Sharing), которые могут возникнуть с запросом XHR (ajax).

Как это делается

Представление нового объекта JavaScript с сервера может быть реализовано по-разному, но наиболее распространенная практика заключается в том, что сервер для реализации выполнения функции обратного вызова с требуемым объектом, переданным в него. Функция обратного вызова - это только функция, которую вы уже настроили на клиенте, который сценарий загружает вызовы в точке , загружаемые скриптом для обработки переданных ему данных.

Пример:

У меня есть приложение, которое регистрирует все предметы в чьем-то доме. Мое приложение настроено, и теперь я хочу получить все предметы в главной спальне.

Мое приложение находится на app.home.com. Мне нужно загрузить данные apis из api.home.com.

Если сервер явно не установлен для его разрешения, я не могу использовать ajax для загрузки этих данных, так как даже страницы на отдельных субдоменах подвержены ограничениям XHR CORS.

В идеале, установите вещи, позволяющие X-домен XHR

В идеале, поскольку api и app находятся в одном домене, у меня может быть доступ к настройке заголовков на api.home.com. Если да, я могу добавить элемент заголовка Access-Control-Allow-Origin:, предоставляющий доступ к app.home.com. Предполагая, что заголовок настроен следующим образом: Access-Control-Allow-Origin: "http://app.home.com", это гораздо безопаснее, чем настройка JSONP. Это связано с тем, что app.home.com может получить все, что хочет от api.home.com без api.home.com, предоставляя CORS доступ ко всему интернету.

Вышеупомянутое решение XHR невозможно. Настройка JSONP На моем клиентском скрипте: я настроил функцию для обработки ответа с сервера, когда я делаю вызов JSONP. :

function processJSONPResponse(data) {
    var dataFromServer = data;
}

Серверу необходимо будет чтобы вернуть мини-скрипт, выглядящий как "processJSONPResponse({"room":"main bedroom","items":["bed","chest of drawers"]});". Он может быть сконструирован так, чтобы возвращать такую ​​строку, если вызывается что-то вроде //api.home.com?getdata=room&room=main_bedroom.

Затем клиент устанавливает тег сценария как таковой:

var script = document.createElement('script');
script.src = '//api.home.com?getdata=room&room=main_bedroom';

document.querySelector('head').appendChild(script);

Загружает скрипт и сразу вызывает window.processJSONPResponse() как написанный / эхо / распечатанный сервером. Данные, переданные в качестве параметра функции, теперь сохраняются в локальной переменной dataFromServer, и вы можете делать с ней все, что вам нужно.

Очистить

После того, как клиент данные, т.е. сразу после добавления сценария в DOM, элемент сценария может быть удален из DOM:

script.parentNode.removeChild(script);
1
задан Teja Bandaru 13 July 2018 в 06:13
поделиться

3 ответа

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

Напротив, наблюдения, которые не имеют того, что вы хотите обнаружить, помечены negative , miss или control .

Таким образом, в pROC это называется control и case , но вы можете думать об этом как отрицательный и положительный , соответственно.

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

0
ответ дан Calimo 17 August 2018 в 13:35
поделиться

Из help(roc):

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

Обычно кривая roc используется в параметрах classificaiton, где у вас есть два вектора помеченных классов (factor() в R), один - ваши предсказанные метки, а другой - истина, снова каждая obs [. g3]

. Иногда вы можете иметь контрольную группу (например, в сценариях медицины), и вы можете дать функцию либо элементам управления (числовому вектору), либо случаям (вектор факторов).

Контрольная группа в основном является частью населения, где вы не даете лечения.

Опять из функции help:

Данные могут быть предоставляемый в качестве ответа, предиктор, где предсказатель представляет собой числовой (или упорядоченный) уровень оцениваемого сигнала, а ответ кодирует класс наблюдения (контроль или случай). Аргумент уровня указывает, какой уровень ответа следует принимать в качестве контроля (первое значение уровня) или случаев (второй). Его можно безопасно игнорировать, когда ответ кодируется как 0 и 1, но он часто терпит неудачу в противном случае. По умолчанию принимаются первые два значения уровней (as.factor (response)), а остальные уровни игнорируются. Это означает, что если ваш ответ закодирован «контроль» и «случай», уровни будут инвертированы.

В некоторых случаях удобнее передавать данные как элементы управления, случаи, но оба аргумента игнорируется, если ответ, предиктор был указан для значений, отличных от NULL. Кроме того, можно передавать данные плотности с помощью плотности .controls, density.cases, что приведет к сглаженной кривой ROC, даже если smooth = FALSE, но игнорируются, если предусмотрены ответ, предсказатель или элементы управления.

< / blockquote>
data(aSAH)
# With numeric controls/cases
roc(controls=aSAH$s100b[aSAH$outcome=="Good"], cases=aSAH$s100b[aSAH$outcome=="Poor"])
# With ordered controls/cases
roc(controls=aSAH$wfns[aSAH$outcome=="Good"], cases=aSAH$wfns[aSAH$outcome=="Poor"])

roc () documentation

1
ответ дан RLave 17 August 2018 в 13:35
поделиться

речь идет о конкретном случае или о функционировании кривых ROC в целом? Если вы застряли в R в проекте кривой ROC, напишите код. Это легче объяснить, когда вы приводите пример.

-1
ответ дан SomeKindOfDesaster 17 August 2018 в 13:35
поделиться
  • 1
    Пожалуйста, добавьте комментарий под вопросом, если вы не ответите. – Calimo 14 July 2018 в 16:24
Другие вопросы по тегам:

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