Параметры машины по вин коду: Проверка комплектации🛂 автомобиля по VIN коду или гос номеру — Автокод

Содержание

Что можно узнать по ВИН коду?

VIN-code — номер, с его помощью которого можно узнать основную информацию об автомобиле, а также историю его эксплуатации. Например, с помощью кода можно узнать, когда машина была продана, есть ли на нее страховка, попадала ли она в аварию, совершался ли угон этого авто, а также многое другое.

Аббревиатура расшифровывается как “Vehicle Identification Number”, что в вольном переводе означает “уникальный номер авто”. Этот код во всех случаях без исключения состоит из 17 знаков, букв и цифр. Причем каждый из них — это зашифрованные определенным образом сведения об авто. Это может быть его комплектация и некоторые другие параметры, включая подробности эксплуатации и историю в целом.

Каждый автомобиль — это единственный в своем роде экземпляр. Даже если машины выпускались большой партией за короткий промежуток времени в пределах одного завода, каждая из них будет иметь свой порядковый номер на конвейере. Именно поэтому каждый ВИН-код, как и авто, к которому он относится, уникален по своей сути. Имея этот номер на руках, вы, по сути, знаете про транспортное средство всю ключевую и дополнительную информацию.

 VIN-code поможет узнать основную информацию об автомобиле, а также историю его эксплуатации 


Более того, найти два одинаковых номера невозможно, поэтому у каждой машины своя история. Проверка ВИН-кода позволит вам узнать все подробности про автомобиль и его эксплуатацию каждым из владельцев. Для этого достаточно лишь найти подходящий онлайн-сервис для проверки, предлагающий подобные услуги.
 

Как расшифровывается номер кузова авто

Вся информация в VIN зашифрована. Детальные данные сможет получить только специалист, обладающий соответствующей базой. Если требуется проверить машину по номеру кузова, этот код расшифровывают следующим образом:

  • 1-3 знаки — регион, страна и фирма-производитель автомобиля.
  • Символы с 4 по 8 — тип кузова, модельный ряд, силовая установка, комплектация.
  • 9 цифра в США и КНР используется в качестве контрольной — это своеобразная защита от незаконной перебивки номера кузова. Остальные страны-производители могут как использовать девятый по счету символ в качестве контрольного, так и зашифровывать в нем дополнительную, необязательную по стандарту информацию об авто, например, тип трансмиссии.
  • 10 знак — год, в котором была выпущена данная модель.
  • 11 символ предоставляет дополнительные сведения о производителе. Как правило, подразумевается отделение завода, где было собрано авто.
  • Знаки с 12 по 17 обозначают порядковый номер машины, ход ее движения по конвейеру. В США на этих местах кода используют только цифры, а в Европе допустимы и буквы.

Проверка авто по ВИН-коду: какую информацию можно узнать по VIN-коду

Если вам известен VIN авто, самостоятельно вы вряд ли сразу найдете нужные вам данные. Однако благодаря многочисленным онлайн-сервисам, как правило, бесплатным, вы сможете получить следующую информацию:

  • восстанавливалась ли машина, например, после аварии;
  • как часто и сколько раз авто переоформляли и/или продавали;
  • производился ли ремонт на официальной станции техобслуживания;
  • попадало ли авто в дорожно-транспортное происшествие;
  • реальные показатели одометра, счетчика пройденного пути;
  • каким именно образом использовался автомобиль — такси, прокат и так далее.

Иными словами, проверка по ВИН-коду позволяет не просто узнать основную информацию о транспортном средстве, но и его историю. Всевозможные происшествия, особенности эксплуатации, юридически оформленные сделки — все это документируется и относится только к одному VIN-коду. Именно это делает номер уникальным, а не сухие характеристики конкретного автомобиля.
 

Можно ли узнать комплектацию авто по ВИН-коду

С помощью номера кузова можно узнать комплектацию машины, а вместе с ней — все характеристики и точные параметры конкретной модели. По сути, 17-значный код предоставляет информацию даже о самых мелких частях транспортного средства, которые не являются критически важными.

Все это открывает широкие возможности для поиска и подбора автомобильных комплектующих. На сайте некоторых интернет-магазинов, например, у нас в Japan-Cars, можно указать VIN-код транспортного средства и за считанные секунды найти все детали, которые лучше всего подходят для конкретного автомобиля.
Более того, таким образом можно подобрать запасные части, которые не являются оригинальными, но при этом могут быть установлены на интересующую вас машину. Детали идеально встанут на свои посадочные места.

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

Дополнительный плюс в том, что проверка авто по ВИН позволяет исключить ошибки при покупке автомобильных комплектующих. Указывая номер кузова в строке поиска, вы приобретаете именно те запасные части и расходные материалы, которые гарантированно подойдут вашей машине. Это особенно актуально при поиске деталей для сложных механизмов и узлов — трансмиссии, силового агрегата и так далее.

Бесплатная Расшифровка VIN Кода: Комплектация по ВИН номеру | AtlanticExpress

Расшифровка VIN кода

ПараметрЗначение

Расшифровка Вин Кода доступна для всех марок авто продаваемых в США:

Как узнать комплектацию машины по ВИН номеру?

Для проверки технических характеристик автомобиля (комплектации) необходимо вставить уникальный идентификационный номер транспортного средства (VIN код), состоящий из 17 символов, в поле проверки, выше на странице, и нажать кнопку «Проверить».

В случае отсутствия ВИН кода в базе, появится уведомление: «Информация по запрашиваемому VIN коду отстутвует»

Расшифровка VIN номера (проверка комплектации) на нашем сайте БЕСПЛАТНАЯ, и не ограничена по количеству запросов. Для более детальной проверки Американских Автомобилей, рекомендуем воспользоваться Карфакс отчетом, который так же можно заказать через наш сайт:

Какие параметры можно узнать из расшифровки?

  • Марка
  • Модель
  • Модельный год
  • Завод изготовитель
  • Завод
  • Серия
  • Отделка
  • Тип автомобиля
  • Страна производитель
  • Базовая цена ($)
  • Идентификатор производителя
  • Тип кузова
  • Кол-во дверей
  • Общий вес транспортного средства
  • Колесная база (дюймы)
  • Количество колес
  • Расположение руля
  • Кол-во мест
  • Количество рядов сидений
  • Типк КПП
  • Количество скоростей
  • Привод
  • Оси
  • Кол-во цилиндров
  • Размещение двигателя(СС)
  • Размещение двигателя(CI)
  • Размещение двигателя(L)
  • Модель двигателя
  • Мощность двигателя
  • Тип топлива — Основной
  • Система газораспределения
  • Engine Brake (hp)
  • Максимальная скорость (Миль)
  • Тип ремней безопасности
  • Расположение шторок подушек безопасности
  • Размещение передних подушек безопасности
  • Размещение боковых подушек безопасности
  • Антиблокировочная система (ABS)
  • Электронная Ситема Стабилизации (ESC)
  • Трэкшен контроль
  • Камера заднего вида (RVS)
  • Система контроля давления в шинах
  • Предупреждения активной системы безопасности
  • Система рсапределния трмозных усилий (DBS)
  • Система автозакрытия окон и люка
  • Дневные ходовые огни
  • Полуавтоматическое переключение света фар
  • Название завода производителя
  • Штат
  • Размещение подушек безопасности в сиденьях
  • Адаптивный круиз контроль (АСС)
  • Система экстренного торможения (CIB)
  • Система предупреждения о столкновении (FCW)
  • Предупреждение о съезде с полосы движения (LDW)
  • Конфигурация двигателя
  • Другая информация о двигателе
  • Производитель двигателя
  • Рсаположение коленных подушек безопасности
  • Дополнительная информация о системе удержания
  • Натяжитель ремня
  • Размер передних колес (дюймы)
  • Размер задних колес (дюймы)
  • Систнема конроля слепых зон (BSD)
  • Бесключевой старт
  • Турбонаддув
  • Циклы хода двигателя
  • Тип охлаждения
  • Lane Keeping Поддержка (LKS)
  • Ассистент парковки
  • Автоматическая система оповещения о ДТП (CAN/AACN)
  • Регистратор данных событий (EDR)
  • Адаптивный свет (ADB)

Основные параметры по электромобилям:

  • Уровень электрификации
  • Автоматическое экстренное торможение перед пешеходами (PAEB)
  • Автоматический сигнал при сближении с пешеходом (for Hybrid and EV only)
  • Уровень автоматизации SAE
  • Информация о батарее
  • Тип Батареи
  • Энергоемкость батареи (Квтч)
  • Блок привода EV
  • Энергоемкость батареи (кВт) до

Из чего состоит Vin код?

Vin-код (номер кузова) авто состоит из 17 буквенных и цифровых символов, которые делятся на три части: WMI — 3 значения, VDS — 6 значений и VIS — 8 символов. Ниже приведенная инструкция поможет вам легко расшифровать вин бесплатно. Детально разобравшись в уникальном номере кузова, вы сможете многое узнать об авто: страну производителя, серию авто, год выпуска и даже комплектацию. Далее мы рассмотрим три части вин-кода.

WMI часть ВИН номера

WMI — (World Manufacturers Identification) – индекс производителя. С первых трех знаков начинается расшифровка вин-кода. Первые три символа, как того требует стандарт ISO 3780 — это буквы и цифры, которые присваиваются в зависимости от страны-производителя. Правильность их использования контролирует Общество автомобильных инженеров (SAE), которое работает под контролем Международной организации по стандартам (ISO).

Первым символ — это географическая зона. Символ может быть как буквой, так и цифрой. Например, Северная Америка обозначается цифрами от 1 до 5, Европа — буквами от S до Z, Африка — буквами от A до Н. За Южной Америкой закреплены цифры 8, 9, 0, страны Океании — цифрами 6, 7 и наконец Азии — буквами от J до R.

Второй символ вин-кода определяет страну в конкретной географической зоне. Бывает, что одну страну могут обозначать несколькими символами. США имеет комбинацию от 10 до 19, Канада — от 2A до 2W, Германия — от W0 до W9.

Третий символ присваивается определенному производителю Национальной организацией. Для производителей, которые выпускают менее 500 авто в год, присваивается цифра 9. Это могут быть небольшие компании выпускающие гипперкары или, например, фирмы, занимающиеся производство пожарных машин и прочей специфической техники. Производителям, которые выпускают более 500 единиц в год, вводится дополнительный код в 12-14 позициях.

VDS Часть VIN кода

VDS (Vehicle Description Section) – описательная секция VIN-кода. Описательная часть вин-кода занимает позиции с 4й по 9й в вин коде и состоит из 6 символов. В случае, когда производитель использует только пять символов VDS шестое значение обозначается цифрой 0. Данная часть помогает определить модель и модификацию автомобиля. Здесь часто зашита информацию о том, какая комплектация авто по вин. Четвертый символ говорит о типе кузова ТС, пятый — тип мотора, шестой — модель. Последующие символы могут обозначать серию авто, допустимую максимальную массу, тип кабины, кузова, шасси, тормозной системы и другое.

Последний, девятый символ части VDS является самым важным цифровым символом, по которому проверяется верность всего VIN-кода.

Что значит VIS часть?

VIS (Vehicle Identifier Section) – отличительная секция VIN-кода.

Восемь последних символов номера кузова авто занимают позиции с 10й до 17й, при этом последние четыре символа — всегда цифры.

Код VIS — это последняя часть, на которой завершается расшифровка вин кода. Как правило, 10й символ содержит информацию о модельном годе или годе выпуска авто по номеру кузова, 11й символ — это информация о том, на каком заводе произведена сборка. Остальные цифровые символы — серийный номер авто.

Таким образом, вы теперь знаете как узнать комплектацию авто по vin или любую другую информацию по автомобилю. Если же вы не желаете запоминать такой объем информации, просто воспользуйтесь нашим сервисом онлайн проверки VIN кода без каких-либо ограничений.

Зная, какой тип двигателя у вашего автомобиля, вы сможете легче найти нужные вам детали, чтобы поддерживать его в лучшем состоянии. Также интересно посмотреть, на какую мощность и крутящий момент он способен, так как отдельные двигатели могут отличаться от приведённых производителем цифр.

Чтобы узнать тип двигателя вашего автомобиля, вам потребуется его идентификационный номер (VIN). Где найти VIN на вашем автомобиле, что означает это число и как вы можете расшифровать его, чтобы узнать больше о своём авто.

Зачем знать модель двигателя

Большинство водителей не знают номер двигателя по VIN-коду и даже не представляют, где его найти, но на самом деле это действительно полезный инструмент, который поможет вам узнать больше о своём автомобиле.

Вот почему полезно знать модель двигателя по VIN-коду:

  • Поиск деталей двигателя. Если вы хотите, чтобы двигатель вашего автомобиля находился в наилучшем состоянии, номер VIN может помочь вам найти детали, созданные специально для этого типа мотора. Можно использовать только марку, модель и регистрацию, но VIN даст вам ту информацию, которая обеспечивает лучшую совместимость и производительность.
  • Проверка технических характеристик. От мощности до максимального крутящего момента, VIN предлагает данные об индивидуальных характеристиках вашего автомобиля – отлично подходит для тех, кто стремится узнать все тонкости своего автомобиля.
  • Покупка подержанной машины. Прежде чем пожать руку продавцу, запишите VIN-номер автомобиля и проверьте его. Как мы уже упоминали, вы можете найти много информации об истории автомобиля, используя VIN, поэтому вы можете быть уверены, что купленный вами автомобиль не был повреждён, угнан или заменён его двигатель.

Как узнать тип двигателя по VIN-коду

Идентификационный номер транспортного средства (VIN) содержит много информации об автомобиле, которому он присвоен. Промышленность начала стандартизировать VIN в 1981 году, чтобы последовательность стала более равномерной. Несмотря на то, что между производителями всё ещё существуют различия, появился 17-значный код, который уникальным образом присваивается каждому автомобилю. Каждый символ в коде имеет различное значение и может быть расшифрован несколькими простыми шагами. Узнать модель двигателя по VIN можно следующим способом.

Шаг 1

Чтобы узнать модель двигателя по VIN-коду, найдите свой VIN. Проверьте свои документы. большинство идентификационных номеров транспортных средств легко найти либо в инструкции/регистрационных документах вашего автомобиля, либо на самом транспортном средстве:

  • на приборной панели вашего автомобиля у окна;
  • на внутренних передних косяках дверей;
  • на рулевой колонке;
  • на машинной колодке на передней части двигателя;
  • на внутренней колёсной арке с левой стороны;
  • на защите транспортного средства;

Шаг 2

Получите ключ декодирования производителя. Ключи декодирования доступны в интернете. Отсюда вы можете получить информацию, представленную в вашем VIN. В зависимости от года выпуска, марки и модели автомобиля и его компонентов, тип двигателя может быть закодирован в любой позиции описания автомобиля.

Где находится VIN-код в автомобиле

Определить модификации автомобиля – необходимый этап проверки машины перед покупкой. При этом можно узнать такие параметры, как объём двигателя, марку, мощность и т. д.

Шаг 3

Проверьте год, производителя, маркировку и модель вашего автомобиля. Второй символ в VIN указывает производителя, третий – модель, а десятый – год. Вся эта информация должна соответствовать описанию вашего автомобиля.

Шаг 4

Чтобы узнать модель двигателя, ищите код мотора в правильном положении вашего VIN. Обычно символы с четвёртого по девятый составляют описание автомобиля и раздел контрольных цифр для большинства автомобилей. Они идентифицируют тип кузова, тип двигателя и тормозную систему. Исключениями являются импортные Audi, BMW, Honda, Lexus, Land Rover, Mercedes Benz, Porsche, Scion, Toyota и Volkswagen. Эти производители часто указывают коды двигателя непосредственно на блоке двигателя.

Проверьте код. Многие описания двигателей до 2003 года перечислены на веб-сайтах производителей. Для других производителей свяжитесь с сервисным центром вашего авто, магазином автозапчастей или другим уполномоченным представителем независимого автосервиса с кодом двигателя, чтобы получить точное описание вашего типа двигателя.

Дополнительные методы определения модели двигателя

Получить информацию о типе двигателя и другие данные об авто можно с помощью сторонних VIN-декодеров. Вот наиболее популярные сервисы в интернете.

Carfax

Carfax утверждает, что имеет доступ к двадцати миллиардам документов из более чем 100 000 источников. Источники информации для компании включают в себя документы о государственной регистрации, аукционы по продаже автомобилей и спасательных средств, тип двигателя, автомобильные учётные записи, предприятия по аренде и автопарки, организации по обеспечению безопасности клиентов, государственные инспекционные пункты, фирмы с расширенными гарантиями, страховые компании, пожарные и полицейские управления, официальные дилеры, инспекционные фирмы, сервисные и ремонтные центры, ритейлеры и импортно-экспортные компании.

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

Carfax уже более 30 лет помогает миллионам покупателей подержанных автомобилей сделать лучший выбор при покупке и предотвратить дорогостоящие скрытые проблемы. Кроме того, Carfax помог автодилерам по всему миру завоевать доверие своих клиентов и уверенно продавать свои машины. Carfax сообщает, что с помощью своих партнёров и источников создали свою базу данных, содержащую более 14 миллиардов документов, включая государственные учреждения, правоохранительные организации, сервисные и ремонтные магазины, автосалоны, страховые компании и многое другое.

VinAudit

Простая проверка VIN позволяет получить электронный отчёт с указанием важных индикаторов NMVTIS (проверки названия и бренда, тип и марка двигателя, измерения одометра и предыдущие проверки повреждений), а также проверки изъятия, предыдущие списки продаж и документы на кражу. Исследование также показывает рыночную стоимость транспортных средств, стоимость владения и внешние средства. В целом, кроме автономного осмотра транспортных средств, отчёт об истории транспортных средств VinAudit служит полезным справочным материалом, помогающим клиентам сделать осознанный выбор при покупке подержанного авто. VinAudit предоставляет дилерские программы и массовый доступ для своих подписчиков, дочерних компаний и посредников к своим информационным решениям для автомобилей.

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

Управляемая государством база данных NMVTIS представляет собой хранилище данных, собранных государственными организациями, занимающимися правами собственности на автомобили, страховыми компаниями, автосервисами и свалками, а также авторециклистами, чтобы избежать мошенничества и небезопасной перепродажи автомобилей. VinAudit также сотрудничает с Федеральным управлением по безопасности транспортных средств (FMCSA), Национальным управлением по безопасности дорожного движения (NHTSA) и Национальным бюро страховых преступлений (NICB), чтобы предоставлять клиентам и другим заинтересованным лицам один из самых обширных отчётов об истории использования автомобилей в стране.

carVertical

carVertical утверждает, что собирает как можно больше информации из различных глобальных источников, включая NMVTIS, других национальных и частных реестров, полицейских баз данных, страховых баз данных, баз данных лизинга, автомобильных аукционов, автодилеров и т. д. Некоторые данные даже собираются в режиме реального времени напрямую из транспортных средств. Они получают ежедневные обновления от реестров и баз данных для обеспечения точности. По данным компании, они имеют:

  • Более 50 000 000 баз данных повреждённых автомобилей в США и Европе.
  • Зарегистрировано более 200 000 000 случаев мошенничества с одометром.

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

Отчёт carVertical является удобной и надёжной отправной точкой для покупки подержанного транспортного средства, поскольку он предоставляет вам информацию, которую вы не можете увидеть своими глазами: была ли машина в угоне, повреждена, тип и марку двигателя, и другие детали из прошлого. Платформа собирает данные из NMVTIS и многих других источников для создания защищённых от несанкционированного доступа отчётов об истории автомобилей.

Идентификационный номер транспортного средства (VIN) – это 17-значное «имя», состоящее из цифр и символов, которое производитель автомобилей присваивает отдельному транспортному средству. Идентификационные номера транспортных средств могут многое рассказать об автомобилях, включая тип подушки безопасности, страну происхождения, объём и тип двигателя, модельный год, тип транспортного средства, уровень комплектации и название завода. VIN (иногда его называют «номер VIN») является ключом к безопасности. Просто введите VIN в одном из перечисленных инструменте поиска, чтобы узнать всю необходимую информацию о типе и марке двигателя машины.

Источник http://atlanticexpress.com.ua/rasshifrovka-vin-koda/
Источник Источник http://carsbiz.ru/raznoe/uznat-nomer-dvigatelya-po-vin-kodu.html

ᐉ Блок Mepart » статьи про запчасти, замену запчастей и ремонт автомобилей

Как искать запчасти по VIN коду автомобиля в интернет магазине Mepart.ru
В разделе каталога оригинальных запасных частей интернет магазина Mepart.ru, у покупателей есть возможность подбора автозапчастей по VIN номеру автомобиля без регистрации. Для выбора детали не нужно быть специалистом по ремонту. Достаточно ввести в поле для поискового запроса вин номер автомашины. Наша умная система автоматически подберёт оригинальные запчасти для узлов и силовых агрегатов.

Что такое VIN код транспортного средства
VIN код автомобиля (полное название Vehicle Identification Number) – это 17 значный уникальный номер, состоящий из букв латинского алфавита и цифр. В VIN коде зашифрованы сведения о заводе производителе и технических параметрах вашего автомобиля, а также о годе выхода с конвейера. 

Вин номер основан на международных стандартах ISO 3780 и ISO 3779-1983. До того как были введены эти стандарты, разные производители выпускали разные форматы деталей – порой не подходящих для установки на авто даже одной марки и модели. После появления стандарта VIN кода, производители запчастей пришли к единым параметрам. Теперь вы можете не бояться, что купленные амортизаторы или воздушный фильтр не встанут на свои штатные места.

Информация о номере VIN находится в техническом паспорте транспорта и автостраховке. Помимо документации, номер выбит на специальных табличках – на неразъемных частях шасси и кузова. 

В VIN код зашифрованы:

• Производитель транспортного средства – первые три символа;
• Технические параметры автомобиля – четвёртый-девятый символы;
• Завод выпустивший автомашину, год выпуска, серийный номер – десятый-семнадцатый символы.

Кроме того, расшифровать вин номер можно и более простым способом. В сети распространено множество сервисов по их расшифровке – как за деньги, так и бесплатных. К слову, магазин Mepart.ru предлагает вам бесплатный поиск запчастей по VIN коду автомобиля. Всё очень удобно. В поисковую строку на сайте перепишите вин из документов вашего автомобиля и получите прямые ссылки на покупку оригинальных деталей из каталога магазина.

Что делать если VIN не определился
Внимательно перепроверьте, всё ли верно вы ввели в поисковый запрос. Если вы сделали всё правильно, наша система верно определит технические параметры вашего автомобиля и предложит нужные детали которые подойдут для конкретно вашей машины.

При возникновении любых вопросов, позвоните по бесплатному номеру 8 (800) 301-30-88. Опытный менеджер проконсультирует вас и поможет с подбором нужных автодеталей.

Подбор запчастей по вин коду автомобиля: DOK раскрывает секреты

Про существование VIN-кода знает каждый автовладелец: именно по нему можно проверить транспортное средство при покупке, подобрать запчасти и даже краску для кузова. Сегодня использование VIN-кода при подборе автозапчастей стало золотым стандартом работы специалистов. Но несмотря на высокую точность этого способа, случаются неприятные казусы, когда выбранная по всем правилам деталь всё равно не подходит на авто. Почему это происходит, как мы выбираем автозапчасти для вас и для чего специалисты задают дополнительные вопросы по характеристикам транспортного средства?

 

Что такое VIN-код

Vehicle identification number (Идентификационный номер транспортного средства) – именно так расшифровывается аббревиатура VIN. Согласно сегодняшнего стандарта это 17-значный код, содержащий цифры от 0 до 9 и буквы латиницы (кроме I, O и Q, которые очень похожи на цифры). 

Первые три знака обозначают изготовителя автомобиля, так называемый WMI (World Manufacturers Identification). Следующие шесть – основные технические характеристики (модель, тип кузова, параметры двигателя, комплектация). Это VDS (Vehicle Description Section) – описательная часть VIN-кода. И последние восемь знаков предназначены для идентификации конкретного транспортного средства, а именно модельный год, код завода-изготовителя, серийный номер автомобиля. Этот блок называют VIS (Vehicle Indicator Section) – отличительная часть.

Кроме кодировки изготовителя, остальные части VIN-кода производители составляют в индивидуально разработанном порядке, поэтому без специального ПО достаточно сложно разобраться, что именно имел в виду производитель, шифруя параметры. Но в международные общие каталоги все эти коды передаются со всеми необходимыми сопроводительными данными, и именно такими каталогами пользуются специалисты, подбирая автозапчасти.

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

 

Где найти VIN-код

Удобней всего посмотреть 17-значный номер в техпаспорте, где он обязательно указывается. Кроме того, ВИН-код располагается в нескольких местах автомобиля, обычно на несъемных элементах кузова:

  • Под капотом;
  • На стойке водительской двери;
  • Под обшивкой пола возле водительского сиденья;
  • На порожке двери возле водителя;
  • В специальном окошке на лобовом стекле;
  • На двигателе;
  • На верхней части арки правого колеса;
  • На торпедо со стороны водителя.

Табличка с VIN-кодом дублируется несколько раз, чтобы затруднить подделку или изменение данных.

 

Немного истории

Как и многие простые и удобные вещи, VIN-код пришел к нам из США. В 50-е годы американская автомобильная промышленность переживала огромный подъем, и покупатели столкнулись с проблемой подбора автозапчастей. Действительно, уже тогда на определенную марку, модель и модификацию автомобиля требовались строго индивидуальные запчасти, выбрать которые становилось всё труднее. Поэтому производители начали кодировать свои автомобили уникальными номерами, причем у каждого концерна была собственная система составления индивидуального кода. В этот же период начали проставлять серийные номера и на автозапчастях, что в разы упростило жизнь автомеханикам и простым автолюбителям. Ремонт автомобилей, подбор запчастей к ним и вообще отношения между человеком и транспортом вышли на совершенно новый уровень.

Примерно 30 лет VIN-коды продолжали оставаться творением автопроизводителей. В 1981 году этот праздник индивидуализма закончился введением общего стандарта: Национальным управлением безопасности дорожного движения в США был разработан 17-значный код с четким разделением на составные части. Этот стандарт с минимальными отличиями приняли Канада, Европа, Австралия, страны Азии и постсоветского пространства.

 

Как подбирают запчасти по VIN-коду

Итак, в VIN-коде записаны основные параметры: марка, модель, модификация, дата выпуска, характеристики двигателя и коробки передач, кузова и так далее. А по факту – уникальный номер транспортного средства, который вносится в базу данных и дополняется информацией обо всех компонентах, установленных на автомобиль с завода. Каждый производитель разрабатывает собственные оригинальные программы, в которые вносит все данные автомобиля с определенным VIN-кодом. И в этих программах чётко указаны номера оригинальных запчастей, которые подходят на каждый из автомобилей.

Мы в DOK.ua тоже используем оригинальное ПО от автопроизводителей. Но если клиент хочет купить запчасть не оригинальную, а отдает предпочтение определенным брендам, в дело вступают другие ресурсы, предназначенные для подбора автозапчастей по аналогам.  
Кстати, до повсеместного внедрения компьютеров то же самое издавалось в виде бумажных каталогов. Понятно, что разобраться в них могли только специалисты, а простым смертным оставалось лишь довериться профессионалам.

Казалось бы, в чём может быть проблема такого подбора? К сожалению, не всё так просто.

 

Почему случаются ошибки подбора по VIN-коду

Вроде всё сделано правильно, а запчасть не подходит, клиент теряет время и деньги, магазин теряет доверие клиента. Есть несколько причин таких вот ошибок.

Причина первая: год выпуска автомобиля. Даже если общий стандарт VIN-кода был принят в 1981 году, это еще не значит, что все автопроизводители внезапно начали его соблюдать. На «раскачку», принятие уточнений к стандарту, изменение принципов кодировки и прочие организационные моменты ушло довольно много времени. Кроме того, те самые бумажные каталоги, которые раньше служили источником информации, не всегда корректно оцифровывались. 

Кроме того, в VIN-кодах раньше не указывали, например, завод-изготовитель или для какого региона был собран автомобиль. Так что автомобили одной и той же марки, модели, модификации и года выпуска, собранные на заводах Германии и, например, Турции, могли серьезно отличаться в элементах подвески, двигателя, головного освещения и так далее. Все эти нюансы начали досконально учитываться только через 20 лет, так что полностью доверять VIN-кодам можно только с 2000-го года выпуска для японских автомобилей, и с 2005 года выпуска – для европейских. Поэтому если у вас машина старше 15 лет, подбор запчастей по вин-коду не всегда будет корректным.

Вторая причина ошибок – ввоз автомобилей из-за границы в частном порядке. И речь не только о «евробляхах», но и о тех машинах, которые были нормально зарегистрированы. Такие автомобили всегда с пробегом, зачастую после ремонта, о котором мало что можно рассказать. К тому же, автомобиль может быть из разряда спецтранспорта, и это нигде не указано в VIN-коде. Например, машины, предназначенные для полиции, делались с усиленной подвеской, а для дипломатических целей – с более комфортной. И эти нюансы обычно не знает даже перекупщик, который продал транспортное средство в Украину, не говоря уже о новом владельце.

И, наконец, третья причина ошибок с подбором комплектующих – тюнинг или неадекватный ремонт. Опять-таки, автовладелец может просто не знать, что там менял прежний хозяин машины. Поставил полуось, которая подходит по длине и нагрузке, но имеет другой посадочный диаметр? Использовал чуть-чуть не такой рычаг? «Улучшил» фары? Если на автомобиле стоят не предназначенные для него запчасти (пусть даже они почти совсем такие же), это обязательно повлечет за собой проблемы с подбором смежных элементов. 

 

Что делать, если уже случались ошибки с подбором запчастей на авто?

Если вы счастливый обладатель автомобиля, на который сложно подобрать запчасти по VIN-коду, то уже наверняка сталкивались с тем, как наши консультанты умеют «допрашивать» по поводу технических характеристик. Обычно их интересуют такие данные:
 

  • Точный (не округлённый, а именно точный) объем двигателя;
  • Тип коробки передач;
  • Тип тормозной системы;
  • Тип кузова;
  • Тип подвески;
  • Дата выпуска и т.д.

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

Самый беспроигрышный вариант – записывать себе номера запчастей, которые подошли на автомобиль. Чтобы в будущем сэкономить своё время и нервы, возьмите себе за правило: купили удачную запчасть, которая правильно встала на свое место – запишите серийный номер. По нему в следующий раз специалист найдет либо точно такую же, либо аналог от другого бренда. Это, пожалуй, единственный способ избежать ошибок при подборе запчастей на автомобили старше 15 лет.

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

VIN код автомобиля: правильная и понятная расшифровка

У каждого человека есть паспорт – документ, который идентифицирует личность. Подобный «паспорт» есть и у каждого автомобиля. Роль однозначного идентификатора выполняет VIN код, который так и расшифровывается — Vehicle Identification Number или автомобильный идентификационный номер. С помощью этого кода можно определить кем, где и когда выла выпущена эта машина, а также определить законность эксплуатации транспортного средства, то есть не находится ли этот автомобиль в угоне.

Описание: что это такое

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

Как уже было сказано, по [VIN коду можно однозначно идентифицировать машину, так как комбинация символов в нем – уникальна. Во время изготовления автомобиля, каждое транспортное средство получает свой собственный код, который составляется согласно определенным дорожно-транспортным стандартам (в частности, по стандартам ISO 3779-1983 и ISO 3780). Структура у этих кодов для всех машин одинакова. Код состоит из 17ти символов, а эти символы нужны для того, чтобы поставить автомобиль на учет в дорожно-транспортной инспекции.

По коду можно определить, когда была выпущена машина, то есть год выпуска, марку и модель автомобиля, объем двигателя, тип коробки передач, которая установлена в машине, даже цвет кузова. Благодаря тому, что по коду можно определить достаточно много полезных и информативных фактов про машину, изменить, то есть «перебить» номер трудно, так как в структуре присутствует так называемый контрольный символ. Если номер «перебит», то легко можно определить правильность кода.

Машинам начали присваивать VIN код в конце 80х годов 20 века, причем первыми это начали делать американцы и канадцы. В Советском Союзе стандарт, по которому составляется идентификационный номер, был одобрен в 1982 году, но вплоть до 1985 года машинам присваивались номера, которые завод-изготовитель придумывал сам. Также производитель сам решал, какова будет структура кода и где его располагать.

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

Расшифровка

VIN код состоит из 3 частей, в каждой из которых могут быть только арабские цифры от 1 до 9 и буквы латинского алфавита, кроме I,O,Q, так как эти буквы очень легко можно исправить на другие, что приведет у изменению всего номера. Иногда пользуются разделителями для того, чтобы поделить части кода. Разделители должны быть иными, нежели символы кода.

Первая часть VIN кода обозначает Всемирный Индекс Изготовителя или WMI (World Manufacturers Identification). По условиям стандарта ISO 3780, первый и второй символ обозначают цифры и буквы, которые отвечают конкретной стане. Контролируется использование этих символом Обществом автомобильных инженеров (SAE), которое, в свою очередь, является подобием подразделения Международной организации по стандартизации (ISO).

Географическую зону, а именно, ее код можно определить по первому символу. К примеру, цифры от 1 до 5 обозначают Северную Америку, буквы от S до Z обозначают Европу, Африку можно определить по буквам от A до H. Цифры 0, 8 и 9 обозначают Южную Америку, а номера 6 и 7 отвечают странам Океании, буквы от J до R отвечают Азии.

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

Третий символ отвечает конкретному производителю, которому дается этот номер или буква Национальной организацией. Если объем производства завода-изготовителя не превышает 500 единиц в год, то такому производителю будет дан общий номер 9. Такая общая идентификация мелких производителей делает более легкий процесс расшифровки номера кузова. Такая нумерация характерна для компаний, которые специализируются на выпуске единичных суперкаров, пожарных машин и крупной строительной техники.

Некоторые мелкие производители идентифицируются дополнительным колом на 12-14 позиции. К примеру, W09xxxxxxxxYYYxxx — VIN код мелкого немецкого производителя, годовой объем выпуска которого не превышает 500 единиц с кодовым номером YYY. Этот кодовый номер является индивидуальным, то есть обозначает конкретного производителя. Остальные символы заполняются производителем самостоятельно.

Итак, расшифровывать VIN код нужно, начиная с первых 3х символов, которые единственным образом определяют производителя. Иногда встречаются коды, у которых символы WMI разные, а выходит, что производитель один и тот же. Эта ситуация является нормальной. Обратной ситуации быть не может.

Вторая часть VIN кода – описательная часть — VDS (Vehicle Description Section). VDS – это 6 символов в позициях с 4й до 9ю. Изготовитель может использовать только 5 символов. Тогда же остальные позиции справа заполняются нулями. Эта часть VIN дает возможность идентифицировать модель машины и ее модификацию согласно конструкторским документам. Символ на 4й позиции определяет тип кузова, на 5й – тип двигателя, на 6й – модель.

Остальные 3 символа могут указывать на серию машины, допустимый максимальный вес, тип шасси, кузова, кабины, разновидность тормозной системы и другую информацию. Последний символ VDS-секции, расположенный на 9й позиции, выполняет роль контрольной суммы, то есть дает возможность проверить VIN код.

Третья часть VIN кода – отличительная часть — VIS (Vehicle Identifier Section). Эта секция занимает позиции с 10й по 17ю. последние 4 символа – обязательно цифры. В этой части содержится информация о времени выпуска машины по номеру кузова (год выпуска, 10я позиция) и о заводе-сборщике (11я позиция). Но иногда производитель может не выполнять предписанных стандартов и не включать некоторые параметры в идентификационный код. Оставшиеся символы указывают серийный номер машины.

Где находится VIN код

VIN код указывается не только в техническом паспорте машины, но и на самом транспортном средстве. Наносится код на кузов, а точнее, на его неразъмные детали, также на специальные таблички для номеров (шильдиках) или на шасси.

Современные производители изображают идентификационный код на верхней левой части инструментальной панели и на левую переднюю стойку кузова. На машинах, которые изготовляются в США, идентификатор наносится на торпеду с той стороны, где сидит водитель, на место, где сходятся лобовое стекло и капот. Код может быть продублированным на стикере в дверном проеме со стороны водителя. Это делается для того, чтобы защитить машину от угона.

Самым традиционным местом расположения VIN кода является блок цилиндров, стойки кузова, перегородка между движком и салоном, дверные пороги и головка блока. Если машина была изготовлена достаточно давно, то искать код лучше на лонжеронах. Часто можно увидеть код на моторе машины. Чтобы определить место нанесения кода, достаточно посмотреть в техническую документацию, которая прилагается к автомобилю.

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

Подписывайтесь на наши ленты в таких социальных сетях как, Facebook, Вконтакте, Instagram, Pinterest, Yandex Zen, Twitter и Telegram: все самые интересные автомобильные события собранные в одном месте.

Зачем проверять автомобиль по вин коду?

15 мая 11:49 2019 by AMSRUS

Просмотров: 522

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

Также vin-код будет необходим в том случае, если вы надумали купить машину. Он позволит обезопасить покупку. Vin-код не обязательно знать наизусть, можно проверить выполнить его проверку.

Если вы приобретаете машину в салоне, вам нужно проверить сверить вин код, указанный в паспорте, с тем, который выбит на кузове. Нередко бывают случаи, когда ПТС не является соответствующим вину, указанному на авто. Такие ситуации случаются по невнимательности персонала. Если вам предстоит покупка бу авто, то здесь также потребуется проверка вин кода. С помощью него вы сможете узнать состояние автомобиля, его пробег, информацию о предыдущих владельцах. Вин-код расскажет вам о том был ли автомобиль в аварии, находился ли под арестом, является ли он угнанным. Такая проверка истории автомобиля поможет вам не прогадать в цене и не приобрести автомобиль, имеющий криминальное прошлое.

Как проверить vin-код?

Выполнить проверку по вин несложно. Достаточно зайти на сайты, которые специализируются на проведении такой проверки. Например, проверка vin кода предлагается здесь carvin-info.com. Также провести такую проверку вам помогут vin check, carfax и другие сервисы. Некоторые сайты предлагают ее бесплатно, другие назначают за неё умеренную цену. С помощью вин кода вы можете протестировать авто на наличие запретов и ограничений на регистрацию. Также по вину можно узнать наличие задолженностей по автомобилю у его владельца. Но для этого вам потребуется узнать имя и фамилию владельца. Провести проверку по вину можно и в ГИБДД. В этом случае вам не придется сомневаться в подлинности предоставленной информации. Но такая проверка является платной.

По вин коду можно выяснить технические параметры машины, страну производителя, массу любопытных фактов из ее биографии. Проверка по вин коду особенно важна, если вы планируете делать выбор авто на вторичном рынке. Вы будете уверены, что приобретаете юридически чистое авто. Но также она может быть необходима и тем людям, которые хотят выполнить ремонт своего авто.


Warning: count(): Parameter must be an array or an object that implements Countable in /var/www/amsrus.ru/wp-content/themes/gadgetine-theme/includes/single/post-tags-categories.php on line 7

Характеристика авто по vin коду – Telegraph


Характеристика авто по vin коду

====================================

>> Перейти к скачиванию

====================================

Проверено, вирусов нет!

====================================

VIN номер, или уникальный код транспортного средства, производитель. характеристики;; Комплектация;; Информация о продаже автомобиля, его.

Pасшифровка vin код автомобиля vin, nроверка по VIN номеру автомобиля на угон, ДТП.

Как узнать комплектацию автомобиля. Комплектация по VIN. Узнать комплектацию по VIN-коду. Как по ВИНу узнать комплектацию.

VIN код автомобиля – это идентификационный номер автомобиля, который. Узнать характеристики автомобиля, при наличии нескольких вариантов.

Что можно узнать по VIN-коду? характеристики машины: тип двигателя, кузова;; год выпуска;; комплектация;; отзывы производителя;; гарантийные.

Введение числа ВИН даст вам знать историю автомобиля. Первое, что я делаю при покупке подержанного автомобиля, это проверяю VIN код. Должен.

Как бесплатно проверить VIN кода автомобиля?. только изготовителя вашего железного коня, но и узнать массу технических характеристик, модель и.

VIN(ВИН) код, это уникальный цифро-буквенный номер, описывающий многие параметры и характеристики автомобиля. По ВИН коду вы можете.

Уникальный подбор по VIN (ВИН) коду. Узнайте оригинальные параметры колесных дисков и шин по VIN (ВИН) коду Вашего автомобиля бесплатно и.

VIN код является неотъемлемым атрибутом каждого автомобиля. восьмой показывают основные технические характеристики автомобиля: модель.

Проверка машины по Vin-коду. Точная информация о возрасте автомобиля, его модели, объеме двигателя, цвете и его производителе.

VINformer: расшифровка VIN, история автомобиля, история владения автомобилем, страховая история, проверка ПТС, диагностика автомобиля (в том.

Большинство этих сайтов помогут вам расшифровать VIN-код до полного понимания технических характеристик и комплектации автомобиля.

Эта часть состоит из 6 знаков (с 4 по 9, при этом 9 символ контрольный, который характеристики автомобиля не описывает). В VIN-коде автомобиля.

Расшифровка VIN-кода; Как проверить VIN-код авто?. выяснить технические характеристики;; уточнить год выпуска, пробег авто, участие в ДТП;.

Для выяснения всех этих сведений служит vin код авто. стране произвели данное авто, дату изготовления, главные характеристики автомобиля.

Расшифровка и история авто по vin коду. Чтобы расшифровать VIN код, введите VIN номер в форму слева (VIN Decoder), и нажмите проверить!

Для получения подробной информации введите VIN (уникальный код автомобиля). Проверка VIN кода возможна для автомобилей Mercedes-Benz.

Поиск информации об автомобиле по VIN-коду. информацию по вашему автомобилю DAF, введя его VIN номер в соответствующее поле ниже.

Здесь вы можете пробить машину по вин коду в режиме онлайн и получить отчёт. Самая точная проверка истории автомобиля. Узнайте истину!

Прогноз качества вина с помощью нескольких методов классификации | Теренс Шин

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

Импорт библиотек

 import numpy as np 
import pandas as pd
import matplotlib as plt
import seaborn as sns
import plotly.express as px

Reading Data

 df = pd.read_csv ("../ input / red-wine-quality-cortez-et-al-2009 / winequality-red.csv ") 

Понимание данных

Затем я хотел получить лучшее представление о том, с чем я работаю.

 # Посмотреть количество строк и столбцов 
print ("Rows, columns:" + str (df.shape)) # Посмотреть первые пять строк набора данных
df.head ()

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

Отсутствующие значения

 # Отсутствующие значения 
print (df.isna (). Sum ())

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

Гистограмма переменной «качество»

Во-первых, я хотел увидеть распределение переменной качества . Я хотел убедиться, что в моем наборе данных достаточно вин «хорошего качества» — позже вы увидите, как я определил «хорошее качество».

 fig = px.histogram (df, x = 'quality') 
fig.show ()

Correlation Matrix

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

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

 corr = df.corr () 
matplotlib.pyplot.subplots (figsize = (15,10))
sns.heatmap (corr, xticklabels = corr.columns, yticklabels = corr.columns, annot = True, cmap = sns.diverging_palette (220, 20, as_cmap = True))

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

Для этой проблемы я определил бутылку вина как «хорошее качество», если у нее был показатель качества 7 или выше, а если он имел показатель качества менее 7, он считался «плохим качеством».

После того, как я преобразовал выходную переменную в двоичный выход, я разделил свои функциональные переменные (X) и целевую переменную (y) на отдельные фреймы данных.

 # Создать версию классификации целевой переменной 
df ['goodquality'] = [1 if x> = 7 else 0 for x in df ['quality']] # Разделить функциональные переменные и целевую переменную
X = df.drop ( ['качество', 'хорошее качество'], ось = 1)
y = df ['хорошее качество']

Соотношение хороших и плохих вин

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

 # Посмотреть соотношение хороших и плохих вин 
df ['goodquality']. Value_counts ()

Стандартизация переменных признаков

На этом этапе я почувствовал, что готов подготовить данные для моделирования. Первое, что я сделал, — это стандартизировал данные. Стандартизация данных означает, что они преобразуют данные так, что их распределение будет иметь среднее значение 0 и стандартное отклонение 1. Важно стандартизировать данные, чтобы уравнять диапазон данных.

Например, представьте себе набор данных с двумя входными характеристиками: рост в миллиметрах и вес в фунтах. Поскольку значения «роста» намного выше из-за его измерения, больший акцент будет автоматически сделан на рост, чем на вес, что создает смещение.

 # Нормализовать переменные функций 
из sklearn.preprocessing import StandardScaler
X_features = X
X = StandardScaler (). Fit_transform (X)

Разделить данные

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

 # Разделение данных 
из sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split (X, y, test_size = .25, random_state = 0)

Теперь самое интересное!

В этом проекте я хотел сравнить пять различных моделей машинного обучения: деревья решений, случайные леса, AdaBoost, Gradient Boost и XGBoost. В рамках этого проекта я хотел сравнить эти модели по их точности.

Модель 1: Дерево решений

Изображение, созданное автором

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

 из sklearn.metrics импорт классификации_report 
из sklearn.tree импорт DecisionTreeClassifiermodel1 = DecisionTreeClassifier (random_state = 1)
model1.fit (X_train, y_train)
y_pred1 = model1.предсказать (X_test) print (classification_report (y_test, y_pred1))

Модель 2: Случайный лес

Случайные леса — это метод ансамблевого обучения, основанный на деревьях решений. Случайные леса включают создание нескольких деревьев решений с использованием самонастраиваемых наборов исходных данных и случайный выбор подмножества переменных на каждом шаге дерева решений. Затем модель выбирает режим всех прогнозов каждого дерева решений. Какой в ​​этом смысл? Опираясь на модель «большинство выигрывает», он снижает риск ошибки в отдельном дереве.

Изображение создано автором

Например, если мы создали одно дерево решений, третье, оно будет предсказывать 0. Но если бы мы полагались на режим всех 4 деревьев решений, предсказанное значение было бы 1. Это мощность случайные леса.

 из sklearn.ensemble import RandomForestClassifier 
model2 = RandomForestClassifier (random_state = 1)
model2.fit (X_train, y_train)
y_pred2 = model2.predict (X_ Modeltest) print (classification_report (y_test, y_11a000B)

Следующие три модели представляют собой алгоритмы повышения квалификации, которые превращают слабых учеников в сильных.Я не хочу отвлекаться и объяснять разницу между этими тремя, потому что это довольно сложно и запутанно. При этом я оставлю несколько ресурсов, где вы можете узнать об AdaBoost, Gradient Boosting и XGBoosting.

 из sklearn.ensemble import AdaBoostClassifier 
model3 = AdaBoostClassifier (random_state = 1)
model3.fit (X_train, y_train)
y_pred3 = model3.predict (X_test) print (classification_report (y_3000), y_pred Повышение
 из sklearn.Импорт ансамбля GradientBoostingClassifier 
model4 = GradientBoostingClassifier (random_state = 1)
model4.fit (X_train, y_train)
y_pred4 = model4.predict (X_test) print (классификационный_отчет (y_test, y_

) как импорт модели 9000boost, 9000boost

)) xgb
model5 = xgb.XGBClassifier (random_state = 1)
model5.fit (X_train, y_train)
y_pred5 = model5.predict (X_test) print (classification_report (y_test, y_pred5))

Путем сравнения пяти моделей случайного леса и XGBoost, кажется, обеспечивает высочайший уровень точности.Однако, поскольку XGBoost имеет лучший показатель f1 для предсказания вин хорошего качества (1), я прихожу к выводу, что XGBoost является победителем из пяти моделей.

Ниже я изобразил важность функции на основе модели случайного леса и модели XGBoost. Хотя они немного различаются, три основных характеристики одинаковы: алкоголь, летучая кислотность и сульфаты. Если вы посмотрите ниже графиков, я разделил набор данных на хорошее и плохое, чтобы сравнить эти переменные более подробно.

через случайный лес

 feat_importances = pd.Series (model2.feature_importances_, index = X_features.columns) 
feat_importances.nlargest (25) .plot (kind = 'barh', figsize = (10,10))

через XGBoost

 feat_importances = pd.Series (model5. feature_importances_, index = X_features.columns) 
feat_importances.nlargest (25) .plot (kind = 'barh', figsize = (10,10))

Сравнение четырех основных функций

 # Фильтрация df только для хорошего качества 
df_temp = df [df ['goodquality'] == 1]
df_temp.describe () # Фильтрация df только для плохого качества
df_temp2 = df [df ['goodquality'] == 0]
df_temp2.description ()
Хорошее качество Плохое качество

Изучив детали, мы можем увидеть, что вина хорошего качества имеют в среднем более высокий уровень алкоголя, в среднем более низкую летучую кислотность, в среднем более высокие уровни сульфатов и более высокие уровни остаточных количеств. сахар в среднем.

Прогноз качества вина - Машинное обучение

Здесь мы будем прогнозировать качество вина на основе заданных характеристик. Мы используем набор данных о качестве вина от Kaggle. Этот набор данных имеет фундаментальные особенности, которые влияют на качество вина.Используя несколько моделей машинного обучения, мы сможем спрогнозировать качество вина. Здесь мы будем иметь дело только с качеством белого вина, мы используем методы классификации, чтобы дополнительно проверить качество вина, то есть хорошее оно или плохое.

Набор данных : здесь

Описание набора данных:

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

Это названия функций из набора данных -:



  1. тип
  2. фиксированная кислотность
  3. летучая кислотность
  4. лимонная кислота
  5. остаточный сахар
  6. хлориды
  7. диоксид серы общий
  8. свободный диоксид серы
  9. общий диоксид серы
  10. плотность
  11. pH
  12. сульфаты
  13. алкоголь
  14. качество

Импорт важных библиотек:

Python3

import pandas 922 nd0 9024 922 922 import as pd 902

импорт matplotlib.pyplot as plt

import seaborn as sb

Pandas - полезная библиотека для анализа данных, библиотека Numpy используется для работы с массивами, Seaborn и Matplotl в визуализации данных.

Чтение данных:

Python3

Dataframe = pd.read_csv (R 'D: \\ xdatasets \ winequalityN.csv ' )

Pandas read_csv функция, используемая для чтения файла csv.

Проверка данных:

Выход:


Выход:


Выход:


Проверка нулевых значений:


2 Визуализация данных

:

Python

сб.pairplot (Dataframe)

plt.show ()

Вывод:


Python3

bframe.bframe. , figsize = ( 10 , 10 ))

plt.show ()


плат.рисунок (figsize = [ 15 , 6 ])

plt.bar (df [ 'качество' ], df [

4 'алкоголь ])

plt.xlabel ( «качество» )

plt.ylabel ( «спирт» )

plt.show ()24

Вывод:

s

Проверяем, как качество вина повышается с увеличением процента алкоголя в вине.

Проверка корреляции:

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



Python3

plt.figure (figsize = [ 18 , 7 ]) 902heatframe (DataFrame)

sbframe (DataFrame) annot = True )

plt.show ()

Вывод:

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

Python3

colm = []

для i в диапазоне ( len Data ( len Data ( len Data)corr (). keys ())):

для j в диапазоне (j):

if abs r (Data) .iloc [i, j])> 0,7 :

colm = Dataframe.corr (). columns [i]

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

Python3

24 значение24 9 :

Мы заполняем все нулевые значения средними значениями конкретных функций и напрямую обновляем набор данных с помощью метода update () .

Python

new_df = Dataframe.drop ( 'общий диоксид серы' , ось = 1

2

new_df.update (new_df.fillna (new_df.mean ()))

Обработка категориальных столбцов:

Python3

cat = _d24ty22 'O' )

df_dummies = pd.get_dummies (new_df, drop_first = True )

249 dummies (

00) Мы используем функцию pandas get_dummies () , которая используется для обработки категориальных столбцов, в этом наборе данных функция 'Type' содержит два типа: Red, и white, , поэтому функция get_dummies () преобразует это в двоичный формат, потому что компьютер не понимал типы объектов.Поскольку красное вино - 1, а белое вино - 0.

Зависимые и независимые характеристики:

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

Python3

df_dummies [ 'лучшее качество' ] = [ 1 if x> 9022 if x> 9022 9022 для x в Dataframe.качество]

print (df_dummies)


Мы создаем программу, в которой, если значение зависимой характеристики «качество » больше 7, то она будет считаться 1 и если их меньше 7, то мы считали это 0 , и это будет сохранено в новом созданном столбце «лучшее качество» .



Разделение наборов данных на обучение и тестирование:

Python3

из sklearn.предварительная обработка импорт train_test_split

x = df_dummies.drop ([ 'качество' , '

4'

4 'наилучшее качество' )

y = df_dummies [ 'лучшее качество' ]

xtrain, xtest, ytrain, ytest _ _train, ytest __ru = 0.2 , random_state = 40 )

Нормализация числовых характеристик:

Мы будем использовать метод нормализации для масштабирования наших данных, потому что в наших функциях диапазон данных высокий, поэтому этот метод уравновешивает диапазоны от 0 до 1.

Python3

от sklearn.preprocessing import MinMaxScaler

norm Scaler = норм.fit (xtrain)

scal_xtrain = norm_fit.transform (xtrain)

scal_xtest = norm_fit.transform (xtest) 902_24 9223


После преобразования данные обучения и тестирования автоматически преобразуются в форму n-мерного массива.

Применение моделей:

Мы будем применять несколько моделей Regression и Classification для проверки оценки точности, но RandomForestClassifier дает нам лучшую точность по сравнению с другой моделью, поэтому мы используем RandomForestClassifier.

RandomForestClassifier:

Python3

из sklearn.ensemble import RandomForestClassifier

23

9024_223

9024_223 из sklearn.metrics import classification_report

rnd = RandomForestClassifier ()

fit 90_223 rnd 902fit (new_xtrain, ytrain)

rnd_score = rnd.score (new_xtest, ytest)

print (_ 'rnd_score модель, ' оценка модели

печать ( '.................................' )

print ( 'вычисление ошибки' )

MSE = mean_squared_error (ytest, y_predict) нп.sqrt (MSE)

печать ( 'среднеквадратичная ошибка:' , MSE)

печать ( '' среднеквадратичная ошибка : , RMSE)

print (classification_report (ytest, x_predict))

Вывод:

Оценка точности RandomForestClass составляет также низкий по сравнению с другими моделями.Эта модель предсказывает качество белого вина с точностью до 88%.

Предсказание значений:

Сравните предсказанные значения и наши исходные значения, чтобы проверить, предсказала ли наша модель истинные значения или нет:

Python3

x_predict = list (rnd. прогноз (xtest))

df = { 'предсказанный' : x_predict, 'оригинальный' : ytest}

pd.DataFrame (df) .head ( 10 )

Выход:

Согласно нашим выводам, мы увидели, что исходные значения тестирования во многом аналогичны прогнозируемым значениям нашей модели RandomForestClassifier . Здесь 1 представляет качество выше 0,7, которое считается вином хорошего качества, а 0 представляет качество ниже 0,7, которое не считается вином хорошего качества.

Вниманию читателя! Не прекращайте учиться сейчас.Изучите все важные концепции машинного обучения с помощью базового курса по машинному обучению по приемлемой для студентов цене и станьте готовым к работе в отрасли.


Репозиторий машинного обучения UCI: набор данных о качестве вина

Набор данных о качестве вина
Загрузить : Папка данных, описание набора данных

Реферат : Включены два набора данных, относящиеся к образцам красного и белого вина виньё верде с севера Португалии.Цель состоит в том, чтобы смоделировать качество вина на основе физико-химических тестов (см. [Cortez et al., 2009], [Web Link]).

Характеристики набора данных:

Многомерный

Количество экземпляров:

4898

Площадь:

Бизнес

Характеристики атрибута:

Реальный

Количество атрибутов:

12

Дата дарения

2009-10-07

Сопутствующие задачи:

Классификация, регрессия

Отсутствуют значения?

НЕТ

Количество посещений в Интернете:

1649844

Источник:

Пауло Кортез, Университет Минью, Гимарайнш, Португалия, http: // www3.dsi.uminho.pt/pcortez
A. Cerdeira, F. Almeida, T. Matos и J. Reis, Комиссия по виноградарству региона Винью-Верде (CVRVV), Порту, Португалия
@ 2009

Информация о наборе данных:

Эти два набора данных относятся к красному и белому вариантам португальского вина "Винью Верде". Для получения более подробной информации обратитесь: [Веб-ссылка] или ссылку [Cortez et al., 2009]. Из-за проблем с конфиденциальностью и логистики доступны только физико-химические (входные) и сенсорные (выходные) переменные (например,грамм. нет данных о сортах винограда, марке вина, отпускной цене вина и т. д.).

Эти наборы данных можно рассматривать как задачи классификации или регрессии. Классы упорядочены и не сбалансированы (например, нормальных вин намного больше, чем отличных или плохих). Алгоритмы обнаружения выбросов могут использоваться для обнаружения нескольких отличных или плохих вин. Кроме того, мы не уверены, все ли входные переменные актуальны. Так что было бы интересно протестировать методы выбора функций.

Информация об атрибуте:

Для получения дополнительной информации прочтите [Cortez et al., 2009].
Входные переменные (на основе физико-химических тестов):
1 - фиксированная кислотность
2 - летучая кислотность
3 - лимонная кислота
4 - сахар остаточный
5 - хлориды
6 - диоксид серы свободный
7 - диоксид серы общий
8 - плотность
9 - pH
10 - сульфаты
11 - алкоголь
Выходная переменная (на основе сенсорных данных):
12 - качество (от 0 до 10)

Соответствующие документы:

стр.Кортез, А. Кердейра, Ф. Алмейда, Т. Матос и Дж. Рейс. Моделирование предпочтений вин путем извлечения данных из физико-химических свойств.
In Decision Support Systems, Elsevier, 47 (4): 547-553, 2009.

Доступно на: [Веб-ссылка]


Запрос цитаты:

Пожалуйста, включите эту цитату, если вы планируете использовать эту базу данных:

П. Кортез, А. Кердейра, Ф. Алмейда, Т. Матос и Дж. Рейс.
Моделирование предпочтений вин путем интеллектуального анализа данных по физико-химическим свойствам.In Decision Support Systems, Elsevier, 47 (4): 547-553, 2009.

.

Перекрестная проверка и поиск по сетке для выбора модели в Python

Введение

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

В этой статье мы подробно рассмотрим эти два фактора. Сначала мы изучим, что такое перекрестная проверка, почему она необходима и как ее выполнять с помощью библиотеки Python Scikit-Learn. Затем мы перейдем к алгоритму поиска по сетке и посмотрим, как его можно использовать для автоматического выбора лучших параметров алгоритма.

Перекрестная проверка

Обычно в процессе машинного обучения данные делятся на обучающие и тестовые наборы; затем обучающий набор используется для обучения модели, а набор тестов - для оценки производительности модели.Однако такой подход может привести к проблемам с отклонениями. Проще говоря, проблема дисперсии относится к сценарию, в котором наша точность, полученная в одном тесте, сильно отличается от точности, полученной в другом тестовом наборе с использованием того же алгоритма.

Решением этой проблемы является использование перекрестной проверки K-Fold для оценки производительности, где K - любое число. Процесс перекрестной проверки K-Fold прост. Вы делите данные на K складок. Из K складок наборы K-1 используются для обучения, а оставшийся набор используется для тестирования.Алгоритм обучается и тестируется K раз, каждый раз новый набор используется в качестве набора для тестирования, а оставшиеся наборы используются для обучения. Наконец, результат перекрестной проверки K-Fold - это среднее значение результатов, полученных на каждом наборе.

Предположим, мы хотим выполнить 5-кратную перекрестную проверку. Для этого данные делятся на 5 наборов, например, мы называем их SET A, SET B, SET C, SET D и SET E. Алгоритм обучается и тестируется K раз. В первом случае от SET A до SET D используются в качестве обучающего набора, а SET E используется как набор для тестирования, как показано на рисунке ниже:

Во втором случае SET A, SET B, SET C и SET E используются для обучения, а SET D используется для тестирования.Процесс продолжается до тех пор, пока каждый набор не будет использован хотя бы один раз для обучения и один раз для тестирования. Конечный результат - это среднее значение результатов, полученных с использованием всех складок. Таким образом мы можем избавиться от дисперсии. Используя стандартное отклонение результатов, полученных для каждого раза, мы можем фактически найти дисперсию в общем результате.

Перекрестная проверка с Scikit-Learn

В этом разделе мы будем использовать перекрестную проверку для оценки производительности алгоритма случайного леса для классификации.Задача, которую мы собираемся решить, - спрогнозировать качество вина по 12 признакам. Подробная информация о наборе данных доступна по следующей ссылке:

https://archive.ics.uci.edu/ml/datasets/wine+quality

В этой статье мы используем данные только для красного вина.

Выполните следующие шаги для реализации перекрестной проверки с помощью Scikit-Learn:

1. Импорт необходимых библиотек

Следующий код импортирует несколько необходимых библиотек:

  импортировать панд как pd
импортировать numpy как np
  
2.Импорт набора данных

Загрузите набор данных, который доступен в Интернете по этой ссылке:

https://www.kaggle.com/piyushgoyal443/red-wine-dataset

После того, как мы его загрузили, мы поместили файл в папку «Datasets» на нашем диске «D» для этой статьи. Название набора данных - winequality-red.csv. Обратите внимание, что вам нужно изменить путь к файлу, чтобы он соответствовал местоположению, в котором вы сохранили файл на своем компьютере.

Выполните следующую команду, чтобы импортировать набор данных:

  набор данных = pd.read_csv (r "D: /Datasets/winequality-red.csv", sep = ';')
  

Набор данных был разделен точкой с запятой, поэтому мы передали ";" атрибут для параметра "sep", чтобы pandas мог правильно проанализировать файл.

3. Анализ данных

Выполните следующий сценарий, чтобы получить обзор данных:

  dataset.head ()
  

Результат выглядит так:

фиксированная кислотность летучая кислотность лимонная кислота сахар остаточный хлоридов диоксид серы свободный диоксид серы общий плотность pH сульфатов спирт качество
0 7.4 0,70 0,00 1,9 0,076 11,0 34,0 0,9978 3,51 0,56 9,4 5
1 7,8 0,88 0,00 2,6 0.098 25,0 67,0 0,9968 3,20 0,68 9,8 5
2 7,8 0,76 0,04 2,3 0,092 15,0 54,0 0.9970 3,26 0,65 9,8 5
3 11,2 0,28 0,56 1,9 0,075 17,0 60,0 0,9980 3,16 0,58 9.8 6
4 7,4 0,70 0,00 1,9 0,076 11,0 34,0 0,9978 3,51 0,56 9,4 5
4. Предварительная обработка данных

Выполните следующий сценарий, чтобы разделить данные на наборы меток и функций.

  X = dataset.iloc [:, 0:11] .values
y = dataset.iloc [:, 11] .values
  

Поскольку мы используем перекрестную проверку, нам не нужно разделять наши данные на обучающие и тестовые наборы. Нам нужны все данные в обучающем наборе, чтобы мы могли применить к ним перекрестную проверку. Самый простой способ сделать это - установить для параметра test_size значение 0. Это вернет все данные в обучающем наборе, как показано ниже:

  из sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split (X, y, test_size = 0, random_state = 0)
  
5.Масштабирование данных

Если вы посмотрите на набор данных, вы заметите, что он плохо масштабируется. Например, столбцы «летучая кислотность» и «лимонная кислота» имеют значения от 0 до 1, в то время как большинство остальных столбцов имеют более высокие значения. Поэтому перед обучением алгоритма нам нужно будет уменьшить масштаб наших данных.

Здесь мы будем использовать класс StandardScalar .

  из sklearn.preprocessing import StandardScaler
feature_scaler = StandardScaler ()
X_train = feature_scaler.fit_transform (X_train)
X_test = feature_scaler.transform (X_test)
  
6. Обучение и перекрестная проверка

Первый шаг на этапе обучения и перекрестной проверки прост. Вам просто нужно импортировать класс алгоритма из библиотеки sklearn , как показано ниже:

  из sklearn.ensemble import RandomForestClassifier
classifier = RandomForestClassifier (n_estimators = 300, random_state = 0)
  

Затем, чтобы реализовать перекрестную проверку, метод cross_val_score файла sklearn.Можно использовать библиотеку model_selection . cross_val_score возвращает точность для всех складок. Значения 4 параметров необходимо передать в класс cross_val_score . Первый параметр - это оценщик, который в основном определяет алгоритм, который вы хотите использовать для перекрестной проверки. Второй и третий параметры, X и y , содержат данные X_train и y_train , то есть функции и метки. Наконец, количество складок передается в параметр cv , как показано в следующем коде:

  из sklearn.model_selection импорт cross_val_score
all_accuracies = cross_val_score (оценка = классификатор, X = X_train, y = y_train, cv = 5)
  

После того, как вы выполнили это, давайте просто напечатаем точности, возвращенные для пяти сгибов методом cross_val_score , вызвав print на all_accuracies .

  печать (все_точности)
  

Ознакомьтесь с нашим практическим руководством по изучению Git с передовыми практиками, общепринятыми стандартами и включенной памяткой.Прекратите поиск в Google команд Git и фактически выучите его!

Выход:

  [0,72360248 0,68535826 0,70716511 0,68553459 0,68454259]
  

Чтобы найти среднее значение всех погрешностей, просто используйте метод mean () объекта, возвращенного методом cross_val_score , как показано ниже:

  печать (all_accuracies.mean ())
  

Среднее значение 0,6972, или 69,72%.

Наконец, давайте найдем стандартное отклонение данных, чтобы увидеть степень дисперсии результатов, полученных с помощью нашей модели.Для этого вызовите метод std () для объекта all_accuracies .

  печать (all_accuracies.std ())
  

Результат: 0,01572, что составляет 1,57%. Это очень мало, что означает, что наша модель имеет очень низкую дисперсию, что на самом деле очень хорошо, поскольку это означает, что прогноз, который мы получили на одном тестовом наборе, не случаен. Скорее, модель будет работать более или менее одинаково на всех тестовых наборах.

Поиск по сетке для выбора параметра

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

В последнем разделе при прогнозировании качества вина мы использовали алгоритм случайного леса. Количество оценок, которые мы использовали для алгоритма, было 300. Аналогично в алгоритме KNN мы должны указать значение K, а для алгоритма SVM мы должны указать тип ядра. Эти оценки - значение K и ядро ​​- все типы гиперпараметров.

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

Кроме того, нелегко сравнивать производительность разных алгоритмов путем случайной установки гиперпараметров, потому что один алгоритм может работать лучше, чем другой, с другим набором параметров. И если параметры изменить, алгоритм может работать хуже, чем другие алгоритмы.

Следовательно, вместо случайного выбора значений параметров лучшим подходом будет разработка алгоритма, который автоматически находит наилучшие параметры для конкретной модели. Grid Search - один из таких алгоритмов.

Поиск по сетке с помощью Scikit-Learn

Реализуем алгоритм поиска по сетке на примере. Сценарий в этом разделе должен запускаться после сценария, который мы создали в последнем разделе.

Для реализации алгоритма поиска по сетке нам необходимо импортировать класс GridSearchCV из файла sklearn .model_selection библиотека.

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

Давайте создадим словарь параметров и их соответствующих значений для нашего алгоритма случайного леса. Подробная информация обо всех параметрах алгоритма случайного леса доступна в документации Scikit-Learn.

Для этого выполните следующий код:

  grid_param = {
    'n_estimators': [100, 300, 500, 800, 1000],
    'критерий': ['Джини', 'энтропия'],
    'bootstrap': [Верно, Неверно]
}
  

Внимательно посмотрите на приведенный выше код. Здесь мы создаем словарь grid_param с тремя параметрами: n_estimators , критерий и bootstrap . Значения параметров, которые мы хотим опробовать, передаются в списке. Например, в приведенном выше сценарии мы хотим найти, какое значение (из 100, 300, 500, 800 и 1000) обеспечивает наивысшую точность.

Аналогичным образом, мы хотим найти, какое значение приводит к наивысшей производительности для параметра критерия : «Джини» или «энтропия»? Алгоритм поиска по сетке в основном перебирает все возможные комбинации значений параметров и возвращает комбинацию с максимальной точностью. Например, в приведенном выше случае алгоритм проверит 20 комбинаций (5 x 2 x 2 = 20).

Алгоритм поиска по сетке может быть очень медленным из-за потенциально огромного количества тестируемых комбинаций.Кроме того, перекрестная проверка еще больше увеличивает время выполнения и сложность.

После создания словаря параметров следующим шагом будет создание экземпляра класса GridSearchCV . Вам необходимо передать значения для параметра оценщика , который в основном является алгоритмом, который вы хотите выполнить. Параметр param_grid принимает словарь параметров, который мы только что создали, в качестве параметра, параметр scoring принимает метрики производительности, параметр cv соответствует количеству складок, которое в нашем случае равно 5, и, наконец, n_jobs Параметр относится к количеству процессоров, которые вы хотите использовать для выполнения.Значение -1 для параметра n_jobs означает, что используется вся доступная вычислительная мощность. Это может быть удобно, если у вас большой объем данных.

Обратите внимание на следующий код:

  gd_sr = GridSearchCV (оценка = классификатор,
                     param_grid = grid_param,
                     scoring = 'точность',
                     cv = 5,
                     n_jobs = -1)
  

После инициализации класса GridSearchCV последним шагом является вызов метода fit класса и передача ему обучающего и тестового набора, как показано в следующем коде:

  гд_ср.подходят (X_train, y_train)
  

Для выполнения этого метода может потребоваться некоторое время, поскольку у нас есть 20 комбинаций параметров и 5-кратная перекрестная проверка. Таким образом, алгоритм выполнится всего 100 раз.

После того, как метод завершит выполнение, следующим шагом будет проверка параметров, которые возвращают наивысшую точность. Для этого распечатайте атрибут sr.best_params_ объекта GridSearchCV , как показано ниже:

  best_parameters = gd_sr.best_params_
печать (лучшие_параметры)
  

Выход:

  {'bootstrap': True, 'criterion': 'gini', 'n_estimators': 1000}
  

Результат показывает, что наивысшая точность достигается, когда n_estimators равны 1000, bootstrap равен True и критерий равен «Джини».

Примечание : Было бы неплохо добавить большее количество оценщиков и посмотреть, увеличится ли производительность дальше, поскольку было выбрано максимально допустимое значение n_estimators .

Последний и последний шаг алгоритма поиска по сетке - определение точности, полученной с использованием лучших параметров. Ранее у нас была средняя точность 69,72% с 300 n_estimators .

Чтобы определить максимальную точность, выполните следующий код:

  best_result = gd_sr.best_score_
печать (лучший_результат)
  

Достигнутая точность: 0,6985 из 69,85%, что лишь немного лучше 69,72%. Чтобы улучшить это, было бы хорошо проверить значения для других параметров алгоритма случайного леса, таких как max_features , max_depth , max_leaf_nodes и т. Д.чтобы увидеть, улучшится ли точность дальше или нет.

Заключение

В этой статье мы изучили два очень часто используемых метода оценки производительности и выбора модели алгоритма. Перекрестная проверка методом K-Fold может использоваться для оценки производительности модели путем решения проблемы дисперсии набора результатов. Кроме того, чтобы определить лучший алгоритм и лучшие параметры, мы можем использовать алгоритм поиска по сетке.

Репозиторий машинного обучения UCI: набор данных Wine

Характеристики набора данных:

Многомерный

Количество экземпляров:

178

Площадь:

Физический

Характеристики атрибута:

Целое, вещественное

Количество атрибутов:

13

Дата дарения

1991-07-01

Сопутствующие задачи:

Классификация

Отсутствуют значения?

Количество посещений в Интернете:

1747054

Источник:

Первоначальные владельцы:

Форина, М.и др., ПАРВУС -
Расширяемый пакет для исследования, классификации и корреляции данных.
Институт фармацевтического и пищевого анализа и технологий, Via Brigata Salerno,
16147 Генуя, Италия.

Донор:

Стефан Эберхард, электронная почта: Стефан '@' coral.cs.jcu.edu.au

Информация о наборе данных:

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

Я думаю, что в исходном наборе данных было около 30 переменных, но по какой-то причине у меня есть только 13-мерная версия. У меня был список из 30 или около того переменных, но а) я его потерял и б) я не знал, какие 13 переменных включены в набор.

Атрибуты (авторство Риккардо Лирди, riclea '@' anchem.unige.it )
1) Алкоголь
2) Яблочная кислота
3) Ясень
4) Щелочность золы
5) Магний
6) Всего фенолов
7) Флаваноиды
8) нефлаваноидные фенолы
9) проантоцианы
10) Интенсивность цвета
11) Оттенок
12) OD280 / OD315 разбавленных вин
13) Пролин

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

Информация об атрибуте:

Все атрибуты непрерывны

Статистика недоступна, но предлагается стандартизировать переменные для определенных целей (например, для нас с классификаторами, которые НЕ масштабно инвариантны)

ПРИМЕЧАНИЕ: 1-й атрибут - это идентификатор класса (1-3)

Соответствующие документы:

(1)
С. Эберхард, Д.Куманс и О. де Вель,
Сравнение классификаторов в параметрах большой размерности,
Тех. Номер представителя 92-02, (1992), Департамент компьютерных наук и Департамент
Математика и статистика, Университет Джеймса Кука в Северном Квинсленде.
(также представлен в Technometrics).

Эти данные использовались со многими другими для сравнения различных
классификаторов. Классы разделимы, правда только RDA
получил 100% правильную классификацию.
(RDA: 100%, QDA 99.4%, LDA 98,9%, 1NN 96,1% (z-преобразованные данные))
(Все результаты с использованием метода исключения одного исключения)

(2)
С. Эберхард, Д. Куманс и О. де Вель,
«КЛАССИФИКАЦИОННОЕ ИСПОЛНЕНИЕ RDA»
Тех. Номер представителя 92-01, (1992), Департамент компьютерных наук и Департамент
Математика и статистика, Университет Джеймса Кука в Северном Квинсленде.
(также отправлено в Journal of Chemometrics).

Здесь данные использовались, чтобы проиллюстрировать превосходную производительность
использование новой функции оценки с RDA.


Документы, цитирующие этот набор данных 1 :

Пинг Чжун и Масао Фукусима. Регуляризованный негладкий метод Ньютона для мультиклассовых машин опорных векторов. 2005. [Контекст просмотра].

Игорь Фишер и Ян Польша. Усиление блочно-матричной структуры для спектральной кластеризации. Телекоммуникационная лаборатория. 2005. [Контекст просмотра].

Агапито Ледежма и Рикардо Алер, Арасели Санчис и Даниэль Боррахо. Эмпирическая оценка оптимизированных конфигураций стекирования.ICTAI. 2004. [Контекст просмотра].

Цзянбинь Тан и Дэвид Л. Доу. MML-вывод наклонных деревьев решений. Австралийская конференция по искусственному интеллекту. 2004. [Контекст просмотра].

Сугато Басу. Полу-контролируемая кластеризация с ограниченными базовыми знаниями. AAAI. 2004. [Контекст просмотра].

Стефан Муттер, Марк Холл и Эйбе Франк. Использование классификации для оценки результатов интеллектуального анализа правил доверительной ассоциации. Австралийская конференция по искусственному интеллекту.2004. [Контекст просмотра].

Дженнифер Г. Дай и Карла Бродли. Выбор функций для обучения без учителя. Журнал исследований в области машинного обучения, 5. 2004 г. [Контекст представления].

Юань Цзян и Чжи-Хуа Чжоу. Редактирование обучающих данных для классификаторов kNN с помощью нейросетевого ансамбля. ISNN (1). 2004. [Контекст просмотра].

Михаил Биленко и Сугато Басу и Раймонд Дж. Муни. Интеграция ограничений и метрического обучения в полууправляемую кластеризацию. ICML. 2004. [Контекст просмотра].

Сугато Басу.Также отображается как технический отчет, UT-AI. Кандидатская диссертация. 2003. [Контекст просмотра].

Майкл Л. Реймер и Трэвис Э. Дум, Лесли А. Кун и Уильям Ф. Панч. Обнаружение знаний в медицинских и биологических наборах данных с использованием гибридного байесовского классификатора / эволюционного алгоритма. IEEE Transactions on Systems, Man, and Cybernetics, Part B, 33. 2003. [View Context].

Джереми Кубица и Эндрю Мур. Вероятностная идентификация шума и очистка данных. ICDM. 2003. [Контекст просмотра].

Мукунд Дешпанде и Джордж Карипис.Использование комбинации значений атрибутов для классификации. CIKM. 2002. [Контекст просмотра].

Петри Контканен, Юсси Лахтинен, Петри Мюллюмаки, Томи Силандер и Генри Тирри. Труды предварительной и последующей обработки в машинном обучении и интеллектуальном анализе данных: теоретические аспекты и приложения, семинар по машинному обучению и приложениям. Группа вычислений сложных систем (CoSCo). 1999. [Контекст просмотра].

Этхем Алпайдин. Голосование по нескольким ближайшим соседям.Артиф. Intell. Rev, 11. 1997. [Контекст просмотра].

Георг Тимм и Э. Фислер. Оптимальная установка весов, скорости обучения и прироста. Е С Е А Р Ч Р Е П Р О Р Т И Д И А П. 1997. [Контекст просмотра].

Педро Домингос. Унификация индукции на основе экземпляров и правил. Машинное обучение, 24. 1996. [Контекст просмотра].

Камаль Али и Майкл Дж. Паццани. Снижение количества ошибок за счет изучения множественных описаний. Машинное обучение, 24. 1996. [Контекст просмотра].

Георг Тимм и Эмиль Фислер.Технический отчет IDIAP High Order and Multilayer Perceptron Initialization. IEEE Transactions. 1994. [Контекст просмотра].

Wl / odzisl / aw Duch. Раскрашивание черных ящиков: визуализация решений нейронной сети. Школа компьютерной инженерии Наньянского технологического университета. [Просмотр контекста].

Х. Алтай Гувенир. Алгоритм обучения классификации, устойчивый к несущественным характеристикам. Билькентский университет, факультет компьютерной инженерии и информатики. [Просмотр контекста].

Кристиан Боргельт и Рудольф Крузе.Ускорение нечеткой кластеризации с помощью методов нейронных сетей. Исследовательская группа Нейронные сети и нечеткие системы, Отдел обработки знаний и языковой инженерии, Школа компьютерных наук Магдебургского университета им. Отто фон Герике. [Просмотр контекста].

Денвер Дэш и Грегори Ф. Купер. Усреднение модели с использованием классификаторов дискретных байесовских сетей. Лаборатория систем принятия решений Программа интеллектуальных систем Питтсбургского университета. [Просмотр контекста].

Пинг Чжун и Масао Фукусима.Формулировки программирования конуса второго порядка для надежной многоклассовой классификации. [Просмотр контекста].

Айнур Акку и Х. Алтай Гувенир. Взвешивание признаков в классификации k ближайшего соседа в проекциях признаков. Департамент компьютерной инженерии и информатики Билькентского университета. [Просмотр контекста].

К. Титус Браун и Гарри В. Буллен, Шон П. Келли и Роберт К. Сяо, Стивен Г. Саттерфилд и Джон Г. Хагедорн и Джудит Э. Девани. Визуализация и интеллектуальный анализ данных в трехмерной иммерсивной среде: летний проект 2003 г.[Просмотр контекста].

Стефан Эберхард, Дэнни Куманс и Де Вел. ВЫПОЛНЕНИЕ МЕТОДОВ РАСПОЗНАВАНИЯ СТАТИСТИЧЕСКИХ ОБРАЗЦОВ В ВЫСОКОМЕРНЫХ УСТАНОВКАХ. Университет Джеймса Кука. [Просмотр контекста].

Прамод Вишванатх и М. Нарасимха Мурти и Шалабх Бхатнагар. Техника синтеза паттернов на основе разделов с эффективными алгоритмами классификации ближайшего соседа. Департамент компьютерных наук и автоматизации Индийского института науки. [Просмотр контекста].

Инь Чжан и В.Ник-стрит. Упаковка с адаптивными затратами. Департамент управленческих наук Университета Айовы Айова-Сити. [Просмотр контекста].

Даичи Мотихаси, Ген-ичиро Кикуи и Кендзи Кита. Изучение неструктурной метрики расстояния с помощью минимальных кластерных искажений. Научно-исследовательские лаборатории устного перевода ATR. [Просмотр контекста].

Абдельхамид Бучачиа. Сети RBF для изучения частично размеченных данных. Кафедра информатики Клагенфуртского университета. [Просмотр контекста].

К.А. Дж. Доэрти, Рольф Адамс и Нил Дэйви. Неконтролируемое обучение с нормализованными данными и неевклидовыми нормами. Университет Хартфордшира. [Просмотр контекста].

Эрин Дж. Бреденштайнер и Кристин П. Беннетт. Мультикатегориальная классификация с помощью машин опорных векторов. Отделение математики Университета Эвансвилля. [Просмотр контекста].

Стефан Эберхард, О. де Вел и Дэнни Куманс. Новые быстрые алгоритмы выбора переменных на основе производительности классификатора. Университет Джеймса Кука.[Просмотр контекста].

Георг Тимм и Эмиль Фислер. Инициализация многослойного персептрона высокого порядка. [Просмотр контекста].

Прамод Вишванатх и М. Нарасимха Мурти и Шалабх Бхатнагар. Техника синтеза паттернов для уменьшения проклятия эффекта размерности. Эл. адрес. [Просмотр контекста].

Чжи-Вэй Сюй и Ченг-Ру Линь. Сравнение методов для мультиклассовых машин опорных векторов. Департамент компьютерных наук и информационной инженерии Национального университета Тайваня.[Просмотр контекста].

Петри Контканен, Юсси Лахтинен, Петри Мюллюмаки, Томи Силандер и Генри Тирри. ИСПОЛЬЗОВАНИЕ БАЙЕССКИХ СЕТЕЙ ДЛЯ ВИЗУАЛИЗАЦИИ ВЫСОКОМЕРНЫХ ДАННЫХ. Группа вычислений сложных систем (CoSCo). [Просмотр контекста].

Перри Мёрланд, Э. Фислер и И. Убарретксена-Беландия. Включение нелинейностей LCLV в оптические многослойные нейронные сети. Препринт статьи, опубликованной в журнале «Прикладная оптика». [Просмотр контекста].

Маттиас Шерф и В. Брауэр.Отбор признаков с помощью метода взвешивания признаков. GSF - Национальный исследовательский центр окружающей среды и здоровья. [Просмотр контекста].

Запрос цитаты:

См. Машинное обучение Политика цитирования репозитория

машинное обучение на Python - лекции Scipy

3.6.9.1. Гиперпараметры, перебор и недо подгонка

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

Центральный вопрос: Если наша оценка неэффективна, как мы должны двигаться вперед?

  • Использовать более простую или более сложную модель?
  • Добавить дополнительные функции к каждой наблюдаемой точке данных?
  • Добавить обучающие образцы?

Ответ часто противоречит интуиции. В частности, Иногда используют более сложная модель даст худшие результаты. Также, Иногда добавление обучающих данных не улучшит ваших результатов. Возможность определить, какие шаги улучшат вашу модель - вот что отличает успешные практики машинного обучения от неудачников.

Компромисс смещения и дисперсии: иллюстрация к простой задаче регрессии

Начнем с простой задачи одномерной регрессии. Этот поможет нам легко визуализировать данные и модель, а результаты легко обобщить на наборы данных более высокой размерности.Мы рассмотрим простой линейная регрессия проблема, с sklearn.linear_model .

 X = np.c_ [.5, 1] ​​.T
y = [.5, 1]
X_test = np.c_ [0, 2] .T
 

Без шума, так как линейная регрессия идеально подходит для данных

 из sklearn import linear_model
regr = линейная_модель.LinearRegression ()
regr.fit (X, y)
plt.plot (X, y, 'o')
plt.plot (X_test, regr.predict (X_test))
 

В реальной жизни у нас есть шум (например, шум измерения) в наших данных:

 нп.random.seed (0)
для _ в диапазоне (6):
    noisy_X = X + np.random.normal (loc = 0, масштаб = .1, размер = X.shape)
    plt.plot (noisy_X, y, 'o')
    regr.fit (noisy_X, y)
    plt.plot (X_test, regr.predict (X_test))
 

Как мы видим, наша линейная модель улавливает и усиливает шум в данные. Он показывает большую вариативность.

Мы можем использовать другую линейную оценку, которая использует регуляризацию, Оценщик Ridge . Этот оценщик упорядочивает коэффициенты, уменьшая их до нуля под предположение, что очень высокие корреляции часто оказываются ложными.Альфа Параметр контролирует величину используемой усадки.

 regr = linear_model.Ridge (альфа = .1)
np.random.seed (0)
для _ в диапазоне (6):
    noisy_X = X + np.random.normal (loc = 0, масштаб = .1, размер = X.shape)
    plt.plot (noisy_X, y, 'o')
    regr.fit (noisy_X, y)
    plt.plot (X_test, regr.predict (X_test))

plt.show ()
 

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

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

3.6.9.2. Визуализация компромисса смещения / отклонения

Подсказка

Учитывая конкретный набор данных и модель (например,грамм. многочлен), мы хотели бы понять, ограничивает ли прогноз предвзятость (недостаточное соответствие) или дисперсия и как для настройки гиперпараметра (здесь d , степень полинома) чтобы дать наилучшее соответствие.

Для заданных данных давайте подберем простую модель полиномиальной регрессии с разной степени:

Подсказка

На приведенном выше рисунке мы видим соответствия для трех различных значений: d . Для d = 1 данные не подходят. Это значит, что модель тоже упрощенно: никакая прямая линия никогда не будет подходить для этих данных.В В этом случае мы говорим, что модель страдает большим смещением. Модель само по себе является необъективным, и это отразится на том, что данные плохо подходит. С другой стороны, для d = 6 данные не подходят. Это означает, что в модели слишком много свободных параметров (в данном случае 6). который можно настроить так, чтобы он идеально соответствовал тренировочным данным. Если мы добавим новый момент в этом сюжете, однако есть вероятность, что он будет очень далек от кривая, представляющая соответствие степени-6. В этом случае мы говорим, что модель страдает высокой дисперсией.Причина использования термина «высокая дисперсия» заключается в что, если какая-либо из входных точек немного изменится, это может привести к совсем другая модель.

Посередине, для d = 2 , мы нашли хорошую среднюю точку. Это подходит данные достаточно хорошо и не страдают от систематической ошибки и дисперсии проблемы видны на рисунках с обеих сторон. Что бы мы хотели, это способ для количественного определения систематической ошибки и дисперсии и оптимизации метапараметры (в данном случае степень полинома d), чтобы определить лучший алгоритм.

Полиномиальная регрессия с помощью scikit-learn

Полиномиальная регрессия строится конвейерной обработкой. Полиномиальные характеристики и LinearRegression :

 >>> из sklearn.pipeline import make_pipeline
>>> из sklearn.preprocessing import PolynomialFeatures
>>> из sklearn.linear_model import LinearRegression
>>> model = make_pipeline (PolynomialFeatures (степень = 2), LinearRegression ())
 
Кривые валидации

Давайте создадим набор данных, как в примере выше:

 >>> def generate_func (x, err = 0.5):
... вернуть np.random.normal (10 - 1. / (x + 0.1), err)

>>> # произвольная выборка дополнительных данных
>>> np.random.seed (1)
>>> x = np.random.random (размер = 200)
>>> y = generate_func (x, err = 1.)
 

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

 >>> xtrain, xtest, ytrain, ytest = train_test_split (x, y, test_size = 0.4)
 

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

Мы используем sklearn.model_selection.validation_curve () для вычисления поезда и тестовая ошибка, и построить ее:

 >>> из sklearn.model_selection импорт validation_curve

>>> градусов = np.arange (1, 21)

>>> model = make_pipeline (PolynomialFeatures (), LinearRegression ())

>>> # Меняйте "степени" на шаге конвейера "polynomialfeatures"
>>> train_scores, validation_scores = validation_curve (
... модель, x [:, np.newaxis], y,
... param_name = 'polynomialfeatures__degree',
... param_range = градусы)

>>> # Постройте среднюю оценку поезда и оценку валидации по складкам
>>> плт.график (градусы, validation_scores.mean (axis = 1), label = 'cross-validation')
[<объект matplotlib.lines.Line2D в ...>]
>>> plt.plot (градусов, train_scores.mean (axis = 1), label = 'training')
[<объект matplotlib.lines.Line2D в ...>]
>>> plt.legend (loc = 'лучший')
<объект matplotlib.legend.Legend в ...>
 

На этом рисунке показано, почему валидация важна. С левой стороны plot, у нас есть многочлен очень низкой степени, который не соответствует данным. Этот приводит к низкой объясненной дисперсии как для обучающей выборки, так и для набор проверки.В дальней правой части сюжета у нас очень высокий многочлен степени, который не соответствует данным. Это видно по факту что тренировка объяснила, что дисперсия очень высока, в то время как набор проверки, он низкий. Выбор d из числа 4 или 5 дает нам лучшее компромисс.

Подсказка

Проницательный читатель поймет, что здесь что-то не так: в На графике выше d = 4 дает наилучшие результаты. Но в предыдущем сюжете мы обнаружили, что d = 6 значительно превышает данные.Что тут происходит? Разница в количествах используемых тренировочных точек. в В предыдущем примере было всего восемь тренировочных точек. В этом Например, у нас есть 100. Как правило, чем больше тренировок точек, можно использовать более сложную модель. Но как ты можешь определить для данной модели, будет ли больше тренировочных точек полезный? Полезной диагностикой для этого являются кривые обучения.

кривые обучения

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

Вопросы:

  • Что вы ожидаете по мере увеличения количества обучающих выборок? посмотреть оценку тренировок? Для оценки валидации?
  • Ожидаете ли вы, что оценка обучения будет выше или ниже оценка валидации? Вы когда-нибудь ожидали, что это изменится?

scikit-learn предоставляет sklearn.model_selection.learning_curve () :

 >>> из sklearn.model_selection import learning_curve
>>> train_sizes, train_scores, validation_scores = learning_curve (
... модель, x [:, np.newaxis], y, train_sizes = np.logspace (-1, 0, 20))

>>> # Постройте среднюю оценку поезда и оценку валидации по складкам
>>> plt.plot (train_sizes, validation_scores.mean (axis = 1), label = 'cross-validation')
[<объект matplotlib.lines.Line2D в ...>]
>>> плт.сюжет (train_sizes, train_scores.mean (axis = 1), label = 'training')
[<объект matplotlib.lines.Line2D в ...>]
 

Для градуса = 1 модель

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

Из приведенного выше обсуждения мы знаем, что d = 1 - это высокое смещение. оценщик, который не соответствует данным.Об этом говорит тот факт, что как обучение, так и оценка валидации низкие. Когда противостоит с таким типом обучения мы можем ожидать, что добавление дополнительных данные обучения не помогут: обе линии сходятся к относительно низкий балл.

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

Модель с большим смещением может быть улучшена следующим образом:

  • Используя более сложную модель (т.е. в данном случае увеличьте d )
  • Соберите больше функций для каждого образца.
  • Уменьшить регуляризацию в регуляризованной модели.

Однако увеличение количества выборок не улучшает высокое смещение. модель.

Теперь давайте посмотрим на модель с высокой дисперсией (т. Е. С избыточным соответствием):

Для градуса = 15 модель

Здесь мы показываем кривую обучения для d = 15 . Из вышеизложенного Мы знаем, что d = 15 - это оценка с высокой дисперсией который превышает данных.Об этом говорит тот факт, что оценка обучения намного выше, чем оценка валидации. По мере того, как мы добавляем больше образцов к этому набору обучения, оценка обучения продолжит уменьшатся, в то время как ошибка перекрестной проверки будет продолжать увеличиваться, пока они встретиться посередине.

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

Модель с высокой дисперсией может быть улучшена с помощью:

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

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

3.6.9.3. Резюме по выбору модели

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

Высокое смещение

Если модель показывает высокое смещение , могут помочь следующие действия:

  • Добавить дополнительные функции . В нашем примере прогнозирования цен на жилье это может быть полезно использовать такую ​​информацию, как район дом, год постройки, размер участка, и т.п.Добавление этих функций в наборы для обучения и тестирования может улучшить оценщик с высоким смещением
  • Используйте более сложную модель . Добавление сложности модели может помочь улучшить предвзятость. Для полиномиальной подгонки это может быть достигается увеличением степени d. В каждой методике обучения есть собственные методы добавления сложности.
  • Используйте меньше образцов . Хотя это не улучшит классификации, алгоритм с высоким смещением может достичь почти того же ошибка с меньшей обучающей выборкой.Для алгоритмов, которые вычислительно затратно, уменьшение размера обучающей выборки может привести к к очень большим улучшениям в скорости.
  • Уменьшить регуляризацию . Регуляризация - это метод, используемый для навязать простоту некоторым моделям машинного обучения, добавив срок штрафа, зависящий от характеристик параметров. Если модель имеет большое смещение, уменьшение эффекта регуляризации может привести к лучшим результатам.
Высокая дисперсия

Если модель показывает большое отклонение , следующие действия могут помощь:

  • Используйте меньше функций .Использование техники выбора признаков может быть полезно, и уменьшить чрезмерную подгонку оценщика.
  • Используйте более простую модель . Сложность модели и переоснащение идут рука об руку.
  • Используйте больше обучающих выборок . Добавление обучающих выборок может уменьшить эффект чрезмерной подгонки и приводит к улучшениям в высокой дисперсии оценщик.
  • Увеличить регуляризацию . Регуляризация предназначена для предотвращения переоснащение. В модели с высокой дисперсией увеличение регуляризации может привести к лучшим результатам.

Этот выбор становится очень важным в реальных ситуациях. Для Например, из-за ограниченного времени телескопа астрономы должны искать баланс между наблюдением за большим количеством объектов и наблюдением за большим количество характеристик для каждого объекта. Как определить, что важнее для конкретной учебной задачи может сообщить стратегии наблюдения, что астроном нанимает.

3.6.9.4. Последнее предостережение: отдельный набор для проверки и тестирования

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

По этой причине рекомендуется разделить данные на три набора:

  • Обучающий набор , используемый для обучения модели (обычно ~ 60% данные)
  • Набор для проверки , используемый для проверки модели (обычно ~ 20% данные)
  • Тестовый набор , используемый для оценки ожидаемой ошибки проверенная модель (обычно ~ 20% данных)

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

Классификация

KNN с использованием Sklearn Python

K Nearest Neighbor (KNN) - очень простой, понятный, универсальный и один из лучших алгоритмов машинного обучения. KNN используется в различных приложениях, таких как финансы, здравоохранение, политология, обнаружение почерка, распознавание изображений и распознавание видео. В кредитных рейтингах финансовые институты прогнозируют кредитный рейтинг клиентов.При выдаче ссуды банковские институты прогнозируют, будет ли ссуда безопасной или рискованной. В политологии разделение потенциальных избирателей на два класса будет голосовать или не голосовать. Алгоритм KNN используется для задач классификации и регрессии. Алгоритм KNN, основанный на подходе подобия признаков.

В этом руководстве вы рассмотрите следующие темы:

  • Алгоритм K-ближайшего соседа
  • Как работает алгоритм KNN?
  • Нетерпеливые против ленивых учеников
  • Как вы определяете количество соседей в KNN?
  • Проклятие размерности
  • Здание классификатора в Scikit-learn
  • Плюсы и минусы
  • Как улучшить производительность KNN?
  • Заключение

K-Ближайшие соседи

KNN - это непараметрический алгоритм ленивого обучения.Непараметрический означает, что нет никаких предположений для базового распределения данных. Другими словами, структура модели определяется из набора данных. Это будет очень полезно на практике, когда большинство наборов данных реального мира не следует математическим теоретическим предположениям. Ленивый алгоритм означает, что для создания модели ему не нужны никакие точки данных обучения. Все данные обучения используются на этапе тестирования. Это ускоряет обучение, а этап тестирования - медленнее и дороже. Дорогостоящий этап тестирования требует времени и памяти.В худшем случае KNN требуется больше времени для сканирования всех точек данных, а сканирование всех точек данных потребует больше памяти для хранения данных обучения.

Как работает алгоритм KNN?

В KNN K - количество ближайших соседей. Решающим фактором является количество соседей. K обычно является нечетным числом, если количество классов равно 2. Когда K = 1, алгоритм известен как алгоритм ближайшего соседа. Это самый простой случай. Предположим, что P1 - это точка, для которой метка должна предсказывать.Сначала вы найдете одну ближайшую точку к P1, а затем метку ближайшей точки, назначенную для P1.

Предположим, что P1 - это точка, для которой метка должна прогнозировать. Сначала вы находите k ближайшую точку к P1, а затем классифицируете точки большинством голосов ее k соседей. Каждый объект голосует за свой класс, и класс с наибольшим количеством голосов принимается в качестве прогноза. Для поиска ближайших похожих точек расстояние между точками определяется с помощью таких мер расстояния, как евклидово расстояние, расстояние Хэмминга, Манхэттенское расстояние и расстояние Минковского.KNN имеет следующие основные шаги:

  1. Рассчитать расстояние
  2. Найдите ближайших соседей
  3. Проголосуйте за лейблы

Eager Vs. Ленивые ученики

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

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

Проклятие размерности

KNN лучше работает с меньшим количеством функций, чем с большим количеством функций. Можно сказать, что при увеличении количества функций требуется больше данных. Увеличение габаритов также приводит к проблеме переоснащения. Чтобы избежать переобучения, необходимые данные должны будут расти экспоненциально по мере увеличения количества измерений. Эта проблема более высокого измерения известна как Проклятие размерности.

Чтобы справиться с проблемой проклятия размерности, вам необходимо выполнить анализ главных компонентов перед применением любого алгоритма машинного обучения, или вы также можете использовать подход выбора характеристик.Исследования показали, что в больших измерениях евклидово расстояние больше бесполезно. Следовательно, вы можете предпочесть другие меры, такие как косинусное сходство, на которые значительно меньше влияет высокая размерность.

Как вы определяете количество соседей в KNN?

Теперь вы понимаете механизм работы алгоритма KNN. Здесь возникает вопрос: как выбрать оптимальное количество соседей? И как это влияет на классификатор? Количество соседей (K) в KNN - это гиперпараметр, который вам нужно выбрать во время построения модели.Вы можете рассматривать K как управляющую переменную для модели прогнозирования.

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

Как правило, специалисты по данным выбирают нечетное число, если количество классов четное. Вы также можете проверить, сгенерировав модель для разных значений k и проверив их производительность. Вы также можете попробовать метод локтя здесь.

Здание классификатора в Scikit-learn

Классификатор КНН

Определение набора данных

Давайте сначала создадим ваш собственный набор данных. Здесь вам понадобятся два типа атрибутов или столбцов в ваших данных: функция и метка. Причина двух типов столбцов - «контролируемый характер алгоритма KNN».

  # Назначение признаков и переменных меток
# Первая функция
weather = ['Солнечный', 'Солнечный', 'Пасмурно', 'Дождливый', 'Дождливый', 'Дождливый', 'Пасмурно', 'Солнечный', 'Солнечный',
«Дождливый», «Солнечный», «Пасмурно», «Пасмурно», «Дождливый»]
# Вторая особенность
temp = ['Горячий', 'Горячий', 'Горячий', 'Мягкий', 'Холодный', 'Холодный', 'Холодный', 'Мягкий', 'Холодный', 'Мягкий', 'Мягкий', 'Мягкий' , "Горячий", "Мягкий"]

# Ярлык или целевая переменная
play = [«Нет», «Нет», «Да», «Да», «Да», «Нет», «Да», «Нет», «Да», «Да», «Да», «Да» ,'Да нет']
  

В этом наборе данных у вас есть две характеристики (погода и температура) и одна метка (воспроизведение).

Кодирование столбцов данных

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

Чтобы закодировать эти данные, вы можете сопоставить каждое значение с числом. например Облачно: 0, Дождь: 1 и Солнечно: 2.

Этот процесс известен как кодирование меток, и sklearn легко сделает это за вас с помощью Label Encoder.

  # Импортировать LabelEncoder
из предварительной обработки импорта sklearn
#creating labelEncoder
le = предварительная обработка.LabelEncoder ()
# Преобразование строковых меток в числа.
weather_encoded = le.fit_transform (погода)
печать (weather_encoded)
  
  [2 2 0 1 1 1 0 2 2 1 2 0 0 1]
  

Здесь вы импортировали модуль предварительной обработки и создали объект Label Encoder. Используя этот объект LabelEncoder, вы можете поместить и преобразовать столбец «погода» в числовой столбец.

Точно так же вы можете кодировать температуру и подписывать ее в числовые столбцы.

  # преобразование строковых меток в числа
temp_encoded = le.fit_transform (темп)
label = le.fit_transform (играть)
  
Объединение функций

Здесь вы объедините несколько столбцов или функций в один набор данных с помощью функции «zip».

  # объединить погоду и температуру в один список кортежей
features = list (zip (weather_encoded, temp_encoded))
  
Генерирующая модель

Построим модель классификатора KNN.

Сначала импортируйте модуль KNeighborsClassifier и создайте объект классификатора KNN, передав номер аргумента соседей в функцию KNeighborsClassifier ().

Затем поместите свою модель в набор поездов, используя fit (), и выполните прогнозирование на тестовом наборе, используя pred ().

  от sklearn.neighbours import KNeighborsClassifier

model = KNeighborsClassifier (n_neighbors = 3)

# Обучить модель с помощью обучающих наборов
model.fit (характеристики, этикетка)

#Predict Output
предсказанный = model.predict ([[0,2]]) # 0: пасмурно, 2: умеренно
печать (прогноз)
  
  [1]
  

В приведенном выше примере вы ввели ввод [0,2], где 0 означает пасмурную погоду, а 2 означает умеренную температуру.Модель предсказывает [1], что означает игру.

KNN с несколькими этикетками

До сих пор вы узнали, как создать классификатор KNN для двоих на Python с помощью scikit-learn. Теперь вы узнаете о KNN с несколькими классами.

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

Набор данных включает 13 характеристик («алкоголь», «яблочная кислота», «зола», «щелочность_эша», «магний», «общее_фенолы», «флаваноиды», «нефлаваноидные фенолы», «проантоцианы», «цветовая интенсивность», «оттенок»). , 'od280 / od315_of_diluted_wines', 'proline') и цель (тип сорта).

Эти данные содержат три типа классов сортов: 'class_0', 'class_1' и 'class_2'. Здесь вы можете построить модель для классификации типа сорта. Набор данных доступен в библиотеке scikit-learn, или вы также можете загрузить его из библиотеки машинного обучения UCI.

Загрузка данных

Давайте сначала загрузим требуемый набор данных Wine из наборов данных scikit-learn.

  # Импорт библиотеки набора данных scikit-learn
из наборов данных импорта sklearn

# Загрузить набор данных
вино = наборы данных.load_wine ()
  
Исследование данных

После загрузки набора данных вы можете узнать о нем немного больше. Вы можете проверить имена функций и целей.

  # вывести названия функций
печать (вино.feature_names)
  
  ['алкоголь', 'яблочная_ кислота', 'зола', 'щелочность_эша', 'магний', 'общее_фенолы', 'флаваноиды', 'нефлаваноидные фенолы', 'проантоцианы', 'интенсивность_цвета', 'оттенок', 'od280 / od315_of_diluted_wines ',' proline ']
  
  # распечатать вид этикетки (class_0, class_1, class_2)
печать (wine.target_names)
  
  ['class_0' 'class_1' 'class_2']
  

Давайте проверим 5 лучших записей набора функций.

  # распечатать данные вина (первые 5 записей)
печать (wine.data [0: 5])
  
  [[1.42300000e + 01 1.71000000e + 00 2.43000000e + 00 1.56000000e + 01
    1.27000000e + 02 2.80000000e + 00 3.06000000e + 00 2.80000000e-01
    2.2 

00e + 00 5.64000000e + 00 1.04000000e + 00 3.


000e + 00 1.06500000e + 03] [1.32000000e + 01 1.78000000e + 00 2.14000000e + 00 1.12000000e + 01 1.00000000e + 02 2.65000000e + 00 2.76000000e + 00 2.60000000e-01 1.28000000e + 00 4.38000000e + 00 1.05000000e + 00 3.40000000e + 00 1.05000000e + 03] [1.31600000e + 01 2.36000000e + 00 2.67000000e + 00 1.86000000e + 01 1.01000000e + 02 2.80000000e + 00 3.24000000e + 00 3.00000000e-01 2.81000000e + 00 5.68000000e + 00 1.03000000e + 00 3.17000000e + 00 1.18500000e + 03] [1.43700000e + 01 1.95000000e + 00 2.50000000e + 00 1.68000000e + 01 1.13000000e + 02 3.85000000e + 00 3.4

00e + 00 2.40000000e-01 2.18000000e + 00 7.80000000e + 00 8.60000000e-01 3.45000000e + 00 1.48000000e + 03] [1.32400000e + 01 2.5

00e + 00 2.87000000e + 00 2.10000000e + 01 1.18000000e + 02 2.80000000e + 00 2.6

00e + 00 3.

000e-01 1.82000000e + 00 4.32000000e + 00 1.04000000e + 00 2.93000000e + 00 7.35000000e + 02]]

Проверим записи целевого набора.

  # распечатать винные этикетки (0: Class_0, 1: Class_1, 2: Class_3)
печать (wine.target)
  
  [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2]
  

Давайте исследуем его еще немного.Вы также можете проверить форму набора данных с помощью shape.

  # данные для печати (функция) shape
печать (wine.data.shape)
  
  (178, 13)
  
  # форма цели печати (или этикетки)
печать (wine.target.shape)
  
  (178,)
  
Данные разделения

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

Давайте разделим набор данных с помощью функции train_test_split ().Вам нужно передать 3 параметра features, target и test_set size. Кроме того, вы можете использовать random_state для случайного выбора записей.

  # Импортировать функцию train_test_split
из sklearn.model_selection import train_test_split

# Разделить набор данных на обучающий набор и тестовый набор
X_train, X_test, y_train, y_test = train_test_split (wine.data, wine.target, test_size = 0.3) # 70% обучение и 30% тест
  
Генерирующая модель для K = 5

Построим модель классификатора KNN для k = 5.

  # Импорт самых ближайших соседей Модель классификатора
from sklearn.neighbors import KNeighborsClassifier

# Создать классификатор KNN
knn = KNeighborsClassifier (n_neighbors = 5)

# Обучите модель с помощью обучающих наборов
knn.fit (X_train, y_train)

# Предсказать ответ для тестового набора данных
y_pred = knn.predict (X_test)
  
Оценка модели для k = 5

Оценим, насколько точно классификатор или модель может предсказать тип сорта.

Точность можно вычислить путем сравнения фактических значений тестовой выборки и прогнозируемых значений.

  # Импорт модуля метрик scikit-learn для расчета точности
из показателей импорта sklearn
# Точность модели, как часто классификатор верен?
print ("Точность:", metrics.accuracy_score (y_test, y_pred))
  
  Точность: 0,685185185185
  

Итак, у вас коэффициент классификации 68,51%, что считается хорошей точностью.

Для дальнейшей оценки вы также можете создать модель для другого количества соседей.

Регенерирующая модель для K = 7

Построим модель классификатора KNN для k = 7.

  # Импорт самых ближайших соседей Модель классификатора
from sklearn.neighbors import KNeighborsClassifier

# Создать классификатор KNN
knn = KNeighborsClassifier (n_neighbors = 7)

# Обучите модель с помощью обучающих наборов
knn.fit (X_train, y_train)

# Предсказать ответ для тестового набора данных
y_pred = knn.predict (X_test)
  
Оценка модели для k = 7

Давайте еще раз оценим, насколько точно классификатор или модель может предсказать тип сорта для k = 7.

  # Импорт модуля метрик scikit-learn для расчета точности
из показателей импорта sklearn
# Точность модели, как часто классификатор верен?
print ("Точность:", metrics.accuracy_score (y_test, y_pred))
  
  Точность: 0,777777777778
  

Итак, у вас коэффициент классификации 77,77%, что считается хорошей точностью.

Здесь вы увеличили количество соседей в модели и повысили точность.Но это не обязательно для каждого случая, когда увеличение числа соседей увеличивает точность. Для более детального понимания этого вы можете обратиться к разделу «Как определить количество соседей?» этого учебника.

Плюсы

Фаза обучения классификации K-ближайшего соседа выполняется намного быстрее по сравнению с другими алгоритмами классификации. Нет необходимости обучать модель для обобщения, поэтому KNN известен как простой и основанный на экземплярах алгоритм обучения.KNN может быть полезен в случае нелинейных данных. Его можно использовать с задачей регрессии. Выходное значение для объекта вычисляется как среднее значение k ближайших соседей.

Минусы

Этап тестирования классификации K-ближайших соседей медленнее и дороже с точки зрения времени и памяти. Требуется большая память для хранения всего набора обучающих данных для прогнозирования. KNN требует масштабирования данных, потому что KNN использует евклидово расстояние между двумя точками данных для поиска ближайших соседей.Евклидово расстояние чувствительно к величине. Объекты с высокими значениями будут иметь больший вес, чем объекты с низкими значениями. KNN также не подходит для данных большого размера.

Как улучшить KNN?

Для получения лучших результатов настоятельно рекомендуется нормализовать данные по той же шкале. Обычно рассматривается диапазон нормализации от 0 до 1. KNN не подходит для данных большого размера. В таких случаях необходимо уменьшить размер, чтобы повысить производительность. Кроме того, обработка пропущенных значений поможет нам улучшить результаты.

Заключение

Поздравляем, вы дошли до конца этого урока!

В этом руководстве вы изучили алгоритм K-ближайшего соседа; это работает, нетерпеливый и ленивый ученик, проклятие размерности, построение модели и оценка набора данных Wine с использованием пакета Python Scikit-learn. Также обсуждались его преимущества, недостатки и предложения по улучшению производительности.

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

.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *