Получение ошибки с помощью RandomForestRegressor

Как и большинство объяснений, которые я видел, те, что выше, понятны о том, как работать с дополнением 2, но на самом деле не объясняют, что они математически. Я попытаюсь сделать это, по крайней мере, для целых чисел, и я расскажу о некоторых предпосылках, которые, вероятно, знакомы в первую очередь.

Вспомните, как это работает для десятичного: & nbsp; & nbsp; 2345 - способ записи & nbsp; ; & nbsp; 2 & times; 103 + 3 & times; 102 + 4 & times; 101 + 5 & times; 100.

Таким же образом двоичный метод является способом записи чисел, используя только 0 и 1, следуя одной и той же общей идее, но заменяя те 10s выше на 2s. Затем в двоичном формате 1111 является способом записи & nbsp; & nbsp; 1 & times; 23 + 1 & times; 22 + 1 & times; 21 + 1 & times; 20, и если вы это сделаете, то получится равным 15 (база 10). Это потому, что он равен 8 + 4 + 2 + 1 = 15.

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

Для компьютеров оказалось более эффективным использовать представление дополнения для отрицательных чисел. И вот что-то, что часто упускается из виду. Дополняющие обозначения включают в себя какой-то разворот цифр числа, даже подразумеваемых нулей, которые идут до нормального положительного числа. Это неудобно, потому что возникает вопрос: все они? Это может быть бесконечное число цифр, которые нужно учитывать.

К счастью, компьютеры не представляют бесконечности. Числа ограничены определенной длиной (или шириной, если хотите). Итак, вернемся к положительным двоичным числам, но с конкретным размером. Я буду использовать 8 цифр («бит») для этих примеров. Таким образом, наш двоичный номер действительно будет & nbsp; 00001111or & nbsp; & nbsp; 0 & times; 27 + 0 & times; 26 + 0 & times; 25 + 0 & times; 24 + 1 & times; 23 + 1 & times; 22 + 1 & times; 21 + 1 & times; 20

Чтобы сформировать отрицательное дополнение дополнения 2, мы сначала дополним все (двоичные) цифры до формы 11110000 и добавим 1 к форме 11110001, но как мы должны понимать, что это означает -15 ?

Ответ заключается в том, что мы меняем значение бит высокого порядка (самый левый). Этот бит будет 1 для всех отрицательных чисел. Изменение будет заключаться в изменении знака его вклада в значение числа, в котором оно появилось. Итак, теперь наш 11110001 понимается как & nbsp; & nbsp; -1 & times; 27 + 1 & times; 26 + 1 & times; 25 + 1 & times; 24 + 0 & times; 23 + 0 & times; 22 + 0 & times; 21 + 1 & times; 20Notice, что перед выражением? Это означает, что бит знака несет вес -27, то есть -128 (основание 10). Все остальные позиции сохраняют тот же вес, что и в двоичных числах без знака.

Разработка нашего -15, это & ​​nbsp; -128 + 64 + 32 + 16 + 1 Попробуйте его на калькуляторе. это -15.

Из трех основных способов, которые я видел отрицательные числа, представленные в компьютерах, 2-го дополнения выигрывают руки для удобства в общем использовании. Впрочем, это странность. Поскольку это двоичный код, должно быть четное количество возможных комбинаций бит. Каждое положительное число может быть сопряжено с отрицательным, но есть только один ноль. Отрицание нуля приводит к нулю. Таким образом, есть еще одна комбинация, число с 1 в знаке и 0 везде. Соответствующее положительное число не будет соответствовать количеству используемых битов.

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

Это похоже на верхушку айсберга странностей. Там больше лежат под поверхностью, но этого достаточно для обсуждения. Вероятно, вы можете найти больше, если вы исследуете «переполнение» для арифметики с фиксированной точкой. Если вы действительно хотите войти в него, вы можете также изучить «модульную арифметику».

0
задан ai_learning 27 March 2019 в 04:34
поделиться

1 ответ

Похоже, что vendor_id отсутствует в самом кадре данных test.

Попробуйте просмотреть список столбцов, представленных в test, используя

test.columns
0
ответ дан ai_learning 27 March 2019 в 04:34
поделиться
Другие вопросы по тегам:

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