Асимптотическая сложность классов набора.NET

При воспроизведении вашего кода я обнаружил, что ошибка возникает из-за попытки подгонки модели линейной регрессии к набору функций, включающему строки. Этот ответ дает вам несколько вариантов того, что делать. Я бы предложил использовать X_train, X_test = pd.get_dummies(X_train.Country), pd.get_dummies(X_test.Country) для быстрого кодирования ваших стран после выполнения train_test_split () для сохранения баланса классов, который вы ищете.

28
задан Igor Brejc 12 May 2009 в 10:57
поделиться

3 ответа

Не существует такого понятия, как «сложность классов коллекций». Скорее, разные операции с этими коллекциями имеют разную сложность. Например, добавление элемента к Dictionary ...

... приближается к операции O (1) . Если емкость должна быть увеличена для размещения нового элемента, этот метод становится операцией O (n) , где n равно Count .

При извлечении элемент из Dictionary ...

... приближается к операции O (1).

0
ответ дан 28 November 2019 в 03:01
поделиться

Эта страница суммирует некоторые временные сложности для различных типов коллекций с Java, хотя они должны быть точно такими же для .NET.

Я взял таблицы из этого страницу и изменили / расширили их для .NET framework. См. Также страницы MSDN для SortedDictionary и SortedList , на которых подробно описаны временные сложности, необходимые для различных операций.


Поиск

Type of Search/Collection Types           Complexity  Comments
Linear search Array/ArrayList/LinkedList  O(N)        Unsorted data.
Binary search sorted Array/ArrayList/     O(log N)    Requires sorted data.
Search Hashtable/Dictionary<T>            O(1)        Uses hash function.
Binary search SortedDictionary/SortedKey  O(log N)    Sorting is automated.

Получение и вставка

Operation         Array/ArrayList  LinkedList  SortedDictionary  SortedList
Access back       O(1)             O(1)        O(log N)          O(log N)
Access front      O(1)             O(1)        N.A.              N.A.
Access middle     O(1)             O(N)        N.A.              N.A.
Insert at back    O(1)             O(1)        O(log N)          O(N)
Insert at front   O(N)             O(1)        N.A.              N.A.
Insert in middle  O(N)             O(1)        N.A.              N.A.

Удаление должно иметь то же сложность вставки для связанной коллекции.

SortedList имеет несколько примечательных особенностей для вставки и извлечения.

Вставка (метод добавления):

Этот метод является операцией O (n) для несортированные данные, где n - количество. это операция O (log n), если новый элемент добавляется в конец список. Если вставка вызывает изменение размера, операция - O (n).

Получение (свойство элемента):

Получение значения этого свойства - операция O (log n), где n - Граф. Установка свойства - это O (log n) операция, если ключ уже в SortedList <(Of <(TKey, TValue>)>). Если ключ не в list, установка свойства - O (n) операция для несортированных данных, или O (журнал n) если новый элемент добавлен в конец списка. Если вставка вызывает resize, операция O (n).

Обратите внимание, что ArrayList эквивалентен List с точки зрения сложности всех операций.


27
ответ дан 28 November 2019 в 03:01
поделиться
Другие вопросы по тегам:

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