Поцарапал порог до металла что делать


Как заполировать царапины на машине своими руками: технология и материалы

Краткое содержание:

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

Виды царапин

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

нарушение целостности верхнего слоя лака;

повреждение до слоя эмали;

царапина на кузове до грунта;

глубокое повреждение до металла.

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

Что выбрать, пасту или гель?

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

Восковой карандаш

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

Если же царапина узкая и доходит до грунтового слоя, предпринимают следующие действия:

поврежденный слой очищают и высушивают, после чего обрабатывают уайт-спиритом;

затем по поверхности дефектного участка круговыми движениями распределяют восковой карандаш;

в завершение его тщательно втирают с использованием мягкой ветоши из микрофибры.

Реставрационный карандаш

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

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

Подготовка к полировке

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

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

Мелкие повреждения

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

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

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

3. После этого пасту тщательно удаляют с кузова.

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

Устранение глубоких царапин

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

обычная краска;

несколько видов грунтовки;

спирт;

тонкая кисть;

специальный набор для устранения царапин.

Пошаговый процесс выглядит следующим образом:

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

2. Затем на царапину наносят грунтовку и оставляют подсохнуть.

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

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

5. Месяц спустя поверхность полируют пастой и восковым составом.

Правила проведения работ

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

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

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

3. Глубокие царапины сначала обрабатывают карандашом, после чего полируют средствами неабразивного типа.

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

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

Здравствуйте! Вы являетесь моим подписчиком. Читайте и комментируйте мои новые публикации

OpenCV: порог изображения

Цель

  • В этом руководстве вы изучите простое определение порога, адаптивное определение порога и пороговое значение Оцу.
  • Вы познакомитесь с функциями cv.threshold и cv.adaptiveThreshold .

Простой порог

Здесь все просто. Для каждого пикселя применяется одно и то же пороговое значение. Если значение пикселя меньше порогового значения, оно устанавливается на 0, в противном случае устанавливается на максимальное значение.Функция cv.threshold используется для применения порогового значения. Первый аргумент - исходное изображение, которое должно быть полутоновым изображением . Второй аргумент - это пороговое значение, которое используется для классификации значений пикселей. Третий аргумент - это максимальное значение, которое присваивается значениям пикселей, превышающим пороговое значение. OpenCV предоставляет различные типы пороговых значений, которые задаются четвертым параметром функции. Базовая установка пороговых значений, как описано выше, выполняется с использованием типа cv.THRESH_BINARY. Все простые типы пороговых значений:

Различия см. В документации типов.

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

Этот код сравнивает различные простые типы порогового значения:

import cv2 as cv

import numpy as np

from matplotlib import pyplot as plt

ret, thresh3 = cv.threshold (img, 127,255, cv.THRESH_BINARY_INV) ret, thresh5 = cv.threshold (img, 127,255, cv.THRESH_TOZERO_INV)

title = ['Исходное изображение', 'BINARY', 'BINARY_INV', 'TRUNC', 'TOZERO', 'TOZERO 900 images']

= [img, thresh2, thresh3, thresh4, thresh5, thresh5]

для i в xrange (6):

plt.subplot (2,3, i + 1), plt.imshow (images [i], 'серый ')

plt.title (title [i])

plt.xticks ([]), plt.yticks ([])

plt.show ()

Примечание
Для построения нескольких изображений у нас есть использовал plt.subplot () функция. Пожалуйста, ознакомьтесь с документацией matplotlib для получения более подробной информации.

Код дает следующий результат:

изображение

Адаптивный порог

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

В дополнение к параметрам, описанным выше, метод cv.adaptiveThreshold принимает три входных параметра:

adaptiveMethod решает, как рассчитывается пороговое значение:

blockSize определяет размер области соседства, а C - это константа, которая вычитается из средней или взвешенной суммы пикселей окрестности.

В приведенном ниже коде сравнивается глобальное пороговое значение и адаптивное пороговое значение для изображения с различным освещением:

import cv2 as cv

import numpy as np

from matplotlib import pyplot as plt

cv.THRESH_BINARY, 11,2)

cv .THRESH_BINARY, 11,2)

title = ['Исходное изображение', 'Глобальное пороговое значение (v = 127)',

'Адаптивное среднее пороговое значение', 'Адаптивное пороговое значение по Гауссу']

images = [img, th2, th3, th4]

для i в xrange (4):

plt.subplot (2,2, i + 1), plt.imshow (images [i], 'grey')

plt.title (title [i])

plt.xticks ([]), plt.yticks ([ ])

plt.show ()

Результат:

изображение

Бинаризация Оцу

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

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

Для этого используется функция cv.threshold (), где cv.THRESH_OTSU передается как дополнительный флаг. Пороговое значение можно выбрать произвольно. Затем алгоритм находит оптимальное пороговое значение, которое возвращается в качестве первого вывода.

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

import cv2 as cv

import numpy as np

from matplotlib import pyplot as plt

ret2, th3 = cv.threshold (img, 0,255, cv.THRESH_BINARY + cv.THRESH_OTSU) ret3, th4 = cv.threshold (blur , 0,255, cv.THRESH_BINARY + cv.THRESH_OTSU)

images = [img, 0, th2,

img, 0, th3,

blur, 0, th4]

title = ['Исходное шумное изображение', 'Гистограмма ',' Глобальное пороговое значение (v = 127) ',

' Исходное шумное изображение ',' Гистограмма ', "Пороговое значение Оцу",

' Гауссово фильтрованное изображение ',' Гистограмма ', "Пороговое значение Оцу"]

для i в xrange (3):

plt.подзаголовок (3,3, i * 3 + 1), plt.imshow (изображения [i * 3], 'серый')

plt.title (заголовки [i * 3]), plt.xticks ([]), plt.yticks ([])

plt.subplot (3,3, i * 3 + 2), plt.hist (images [i * 3] .ravel (), 256)

plt.title (title [i * 3 + 1]), plt.xticks ([]), plt.yticks ([])

plt.subplot (3,3, i * 3 + 3), plt.imshow (изображения [i * 3 + 2 ], 'серый')

plt.title (заголовки [i * 3 + 2]), plt.xticks ([]), plt.yticks ([])

plt.show ()

Результат:

изображение

Как работает бинаризация Оцу?

В этом разделе демонстрируется Python-реализация бинаризации Оцу, чтобы показать, как это на самом деле работает.2 \ frac {P (i)} {q_2 (t)} \]

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

hist_norm = hist.ravel () / hist.sum ()

Q = hist_norm.cumsum ()

bins = np.arange (256)

fn_min = np. inf

thresh = -1

для i в xrange (1,256):

p1, p2 = np.hsplit (hist_norm, [i])

q1, q2 = Q [i], Q [255] -Q [i]

, если q1 <1.e-6 или q2 <1.e-6:

продолжить

b1, b2 = np.hsplit (bins, [i])

m1, m2 = np.sum (p1 * b1) / q1, np. сумма (p2 * b2) / q2

v1, v2 = np.sum (((b1-m1) ** 2) * p1) /q1,np.sum (((b2-m2) ** 2) * p2 ) / q2

fn = v1 * q1 + v2 * q2

если fn

fn_min = fn

thresh = i

ret, otsu = cv.threshold (blur, 0,255, cv.THRESH_BINARY + cv. THRESH_OTSU) print ("{} {}". Format (thresh, ret))

Дополнительные ресурсы

  1. Цифровая обработка изображений, Рафаэль К.Гонсалес

Упражнения

  1. Для бинаризации Оцу доступны некоторые оптимизации. Вы можете найти и внедрить его.
.

Рабочие диски заполнены? Как очистить рабочий стол 8 способами

Прежде, чем мы начнем

Потратив несколько лет на программирование приложений для macOS, мы создали инструмент, который может использовать каждый. Универсальный инструмент для решения проблем для Mac.

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

Функции, описанные в этой статье, относятся к версии CleanMyMac X для MacPaw.

Если вы пользователь macOS и регулярно работаете в таких программах, как Adobe Premiere Pro, Final Cut Pro и Adobe Photoshop, вы, вероятно, сталкивались с ошибками, связанными с «рабочим диском». Самая распространенная ошибка - это отказ Photoshop открыться вместе с сообщением «Не удалось инициализировать Photoshop, потому что рабочие диски заполнены».

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


Что такое рабочий диск?

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

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

Рабочий диск - это пространство на жестком диске, используемое Photoshop в качестве виртуальной памяти, когда ОЗУ недостаточно для выполнения задачи. Photoshop позволяет назначить несколько рабочих дисков: таким образом у него будет больше места.

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

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


Причины появления ошибки «Рабочие диски заполнены»

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

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

  • Нехватка места на диске, на котором находится рабочий диск.
  • Раздел диска, используемого Photoshop, заполнен
  • Ограниченное количество ОЗУ, разрешенное для Photoshop

Что делать, когда рабочие диски заполнены?

Пользователи Mac получают сообщение «Рабочий диск заполнен», когда Photoshop (или любая из других программ) израсходовал все пространство на жестком диске, которое было назначено как рабочий диск.Это использованное пространство является временным и отделено от вашего фактического файла проекта.

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

Итак, как очистить рабочие диски? Давай выясним.

Важный вывод
: Если ваш HD заполнен, Photoshop будет отображать ошибки рабочего диска.

1. Очистите кеш Photoshop

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

Чтобы использовать этот инструмент, просто войдите в Photoshop на Mac и с открытым изображением:

  • Щелкните кнопку меню «Правка».
  • Наведите указатель мыши на «очистить», чтобы открыть 4 различных варианта.
  • Отменить, буфер обмена, истории, все. Если элемент выделен серым цветом, это означает, что он уже удален.
  • Выберите конкретный элемент, который вы хотите удалить, или выберите «все», чтобы удалить все ваши кеши.
  • Вы будете предупреждены о том, что очистку нельзя отменить, поэтому убедитесь, что вам не нужна предыдущая версия одного из ваших проектов, и нажмите OK.

Хороший способ предотвратить накопление кэша Photoshop - это регулярная очистка диска. Но вот проблема: кеш находится настолько глубоко в системных папках (и их подпапках), что d

.

способов обнаружения и удаления выбросов | Наташа Шарма

Что вы ищете, работая над проектом Data Science? Что является наиболее важной частью фазы EDA? Есть определенные вещи, которые, если их не сделать на этапе EDA, могут повлиять на дальнейшее статистическое моделирование / моделирование машинного обучения. Один из них - поиск «выбросов». В этом посте мы попытаемся понять, что такое выброс? Почему важно идентифицировать выбросы? Какие есть методы для выбросов? Не волнуйтесь, мы не будем проходить только теоретическую часть, мы также займемся кодированием и построением графиков данных.

Определение Википедии,

В статистике выброс - это точка наблюдения, удаленная от других наблюдений.

Приведенное выше определение предполагает, что выброс - это что-то отдельное / отличное от толпы. Многие мотивационные видео предлагают отличиться от толпы, особенно Малкольма Гладуэлла. Что касается статистики, это тоже хорошо или нет? мы собираемся найти это в этом посте.

Google Image - Wikihow

Вы видите что-нибудь по-другому на изображении выше? Все числа в диапазоне 30, кроме числа 3.Это наш выброс, потому что он не где-то рядом с другими числами.

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

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

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

Собранные данные

Как видно из собранных выше данных, все остальные игроки набрали 300+, кроме Игрока 3, который набрал 10. Эта цифра может быть просто ошибкой ввода или дисперсией в ваших данных и указанием Player3 работает очень плохо, поэтому требует улучшений.

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

Большинство из вас может подумать: «О! Я могу просто получить пик данных, чтобы найти выбросы, как мы это делали в ранее упомянутом примере с крикетом.Давайте представим файл с 500+ столбцами и 10k + строками. Как вы думаете, выбросы можно найти вручную? Чтобы облегчить обнаружение выбросов, у нас есть множество методов в статистике, но мы будем обсуждать только некоторые из них. В основном мы будем стараться рассматривать методы визуализации (самые простые), а не математические.

Итак, приступим. Мы будем использовать набор данных Boston House Pricing Dataset, который включен в API набора данных sklearn. Мы загрузим набор данных и разделим функции и цели.

 boston = load_boston () 
x = boston.data
y = boston.target
columns = boston.feature_names # создать фрейм данных
boston_df = pd.DataFrame (boston.data)
boston_df.columns = columns
boston_df.head ()
Boston Housing Data

Характеристики / независимая переменная будет использоваться для поиска любых выбросов. Глядя на данные выше, кажется, что у нас есть только числовые значения, то есть нам не нужно выполнять какое-либо форматирование данных. (Вздох!)

Есть два типа анализа, которым мы будем следовать, чтобы найти выбросы: (анализ выбросов с одной переменной) и многомерный (анализ выбросов с двумя или более переменными).Не запутайтесь, когда вы начнете кодировать и строить график данных, вы сами убедитесь, насколько легко было обнаружить выброс. Для простоты мы начнем с основного метода обнаружения выбросов и постепенно перейдем к более продвинутым методам.

Обнаружение выбросов с помощью инструментов визуализации

Коробчатая диаграмма-

Определение Википедии,

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

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

 import seaborn as sns 
sns.boxplot (x = boston_df ['DIS'])
Boxplot - Distance to Employment Center

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

Здесь мы проанализировали единичный выброс, т.е. мы использовали столбец DIS только для проверки выброса. Но мы также можем проводить многомерный анализ выбросов. Можем ли мы провести многомерный анализ с помощью прямоугольной диаграммы? Что ж, это зависит от того, если у вас есть категориальные значения, вы можете использовать их с любой непрерывной переменной и выполнять многомерный анализ выбросов.Поскольку у нас нет категориальной ценности в нашем наборе данных Boston Housing, нам, возможно, придется забыть об использовании ящичной диаграммы для многомерного анализа выбросов.

Диаграмма рассеяния -

Определение в Википедии

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

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

 fig, ax = plt.subplots (figsize = (16,8)) 
ax.scatter (boston_df ['INDUS'], boston_df ['TAX'])
ax.set_xlabel ('Доля акров, не связанных с розничной торговлей на город ')
ax.set_ylabel (' Полная ставка налога на имущество на $ 10 000 ')
plt.show ()
Точечная диаграмма - Доля некоммерческих коммерческих площадей на город по сравнению с полной стоимостью налога на недвижимость

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

Обнаружение выбросов с помощью математической функции

Z-Score-

Определение Википедии

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

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

Вам должно быть интересно, как это помогает в идентификации выбросов? Что ж, при вычислении Z-показателя мы повторно масштабируем и центрируем данные и ищем точки данных, которые слишком далеки от нуля. Эти точки данных, которые слишком далеки от нуля, будут рассматриваться как выбросы. В большинстве случаев используется порог 3 или -3, то есть, если значение Z-оценки больше или меньше 3 или -3 соответственно, эта точка данных будет идентифицирована как выбросы.

Мы будем использовать функцию Z-score, определенную в библиотеке scipy, для обнаружения выбросов.

 из scipy import stats 
import numpy as npz = np.abs (stats.zscore (boston_df))
print (z)
Z-score of Boston Housing Data

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

 порог = 3 
печать (np.where (z> 3))

Это даст результат, как показано ниже -

Точки данных, где Z-оценка больше 3

Результаты не могут вас смутить.Первый массив содержит список номеров строк, а второй массив номеров соответствующих столбцов, что означает, что z [55] [1] имеют Z-оценку выше 3.

 print (z [55] [1]) 3.375038763517309 

Итак , точка данных - 55-я запись в столбце ZN является выбросом.

Оценка IQR -

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

Определение Википедии

Межквартильный диапазон ( IQR ), также называемый средним или средний 50% , или технически H-разброс , является мерой статистической дисперсии, равной разница между 75-м и 25-м процентилями или между верхним и нижним квартилями, IQR = Q 3 - Q 1.

Другими словами, IQR - это первый квартиль, вычитаемый из третьего квартиля; эти квартили можно четко увидеть на прямоугольной диаграмме данных.

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

IQR в чем-то похож на Z-оценку с точки зрения определения распределения данных и последующего сохранения некоторого порога для выявления выброса.

Давайте выясним, что мы можем использовать коробчатый график с использованием IQR и как мы можем использовать его для поиска списка выбросов, как мы это делали при вычислении Z-показателя. Сначала мы рассчитаем IQR,

 Q1 = boston_df_o1.quantile (0.25) 
Q3 = boston_df_o1.quantile (0,75)
IQR = Q3 - Q1
print (IQR)

Здесь мы получим IQR для каждого столбца.

IQR для каждого столбца

Поскольку теперь у нас есть оценки IQR, пора зафиксировать выбросы. Приведенный ниже код даст результат с некоторыми истинными и ложными значениями. Точка данных, где у нас есть False, означает, что эти значения действительны, тогда как True указывает на наличие выброса.

 print (boston_df_o1 <(Q1 - 1.5 * IQR)) | (boston_df_o1> (Q3 + 1.5 * IQR)) 
Обнаружение выбросов с помощью IQR

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

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

Z-Score

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

 boston_df_o = boston_df_o [(z <3) .all (axis = 1)] 
С и без размера выброса набора данных

Итак, приведенный выше код удалил около 90+ строк из набора данных, т.е. выбросы были удалены.

Оценка IQR -

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

 boston_df_out = boston_df_o1 [~ ((boston_df_o1 <(Q1 - 1.5 * IQR)) | (boston_df_o1> (Q3 + 1.5 * IQR))). Any (axis = 1)] boston_df_out.shape 

Приведенный выше код удалит выбросы из набора данных.

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

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

https: // www.researchgate.net/post/When_is_it_justifiable_to_exclude_outlier_data_points_from_statistical_analyses

https://www.researchgate.net/post/Which_is_the_best_method_for_removing_outliers_in_a_best_method_for_removing_outliers_in_a_a_data_set 9000-data_set 9000-data_set

000-data_set 9000-0003

Подводя итог их объяснения - неверные данные, неправильный расчет, их можно определить как выбросы, и их следует отбросить, но в то же время вы можете захотеть исправить и их, поскольку они изменяют уровень данных i.е. означают, что вызывает проблемы при моделировании данных. Например, 5 человек получают зарплату 10К, 20К, 30К, 40К и 50К, и вдруг один из них начинает получать зарплату 100К. Рассмотрим эту ситуацию, поскольку, если вы являетесь работодателем, новое обновление зарплаты может быть воспринято как необъективное, и вам может потребоваться увеличить зарплату и другим сотрудникам, чтобы сохранить баланс. Итак, может быть несколько причин, по которым вы хотите понять и исправить выбросы.

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

Note- Для этого упражнения использовались инструменты и библиотеки, указанные ниже.

Framework- Jupyter Notebook, Language- Python, Libraries - библиотека sklearn, Numpy, Panda и Scipy, Plot Lib- Seaborn и Matplot.

  1. Boston Dataset
  2. Github Repo
  3. Выбросы KDNuggets
  4. Обнаружение выбросов
.

5 алгоритмов кластеризации, которые необходимо знать ученым | Джордж Сейф

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

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

Кластеризация К-средних

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

Кластеризация K-средних
  1. Для начала мы сначала выбираем несколько классов / групп для использования и случайным образом инициализируем их соответствующие центральные точки. Чтобы определить количество используемых классов, полезно быстро взглянуть на данные и попытаться выделить какие-либо отдельные группы. Центральные точки - это векторы той же длины, что и каждый вектор точек данных, и обозначены буквами «X» на рисунке выше.
  2. Каждая точка данных классифицируется путем вычисления расстояния между этой точкой и центром каждой группы, а затем классификации точки в группе, центр которой находится ближе всего к ней.
  3. На основе этих классифицированных точек мы повторно вычисляем центр группы, взяв среднее значение всех векторов в группе.
  4. Повторите эти шаги для заданного количества итераций или до тех пор, пока центры групп не будут сильно меняться между итерациями. Вы также можете выбрать случайную инициализацию групповых центров несколько раз, а затем выбрать прогон, который, похоже, обеспечил наилучшие результаты.

K-Means имеет то преимущество, что он довольно быстр, поскольку все, что мы на самом деле делаем, это вычисляем расстояния между точками и центрами групп; очень мало вычислений! Таким образом, он имеет линейную сложность O ( n ).

С другой стороны, у K-Means есть несколько недостатков. Во-первых, вы должны выбрать количество групп / классов. Это не всегда тривиально, и в идеале с алгоритмом кластеризации мы хотели бы, чтобы он выяснял это за нас, потому что его цель - получить некоторое представление о данных. K-средство также начинается со случайного выбора центров кластеров и, следовательно, может давать разные результаты кластеризации при разных прогонах алгоритма. Таким образом, результаты могут быть неповторимыми и непротиворечивыми.Другие кластерные методы более последовательны.

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

Кластеризация со средним сдвигом

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

Кластеризация среднего сдвига для одного скользящего окна
  1. Чтобы объяснить средний сдвиг, мы рассмотрим набор точек в двумерном пространстве, как на иллюстрации выше.Мы начинаем с круглого скользящего окна с центром в точке C (выбранной случайным образом) и с радиусом r в качестве ядра. Среднее смещение - это алгоритм подъема в гору, который включает итеративное смещение этого ядра в область с более высокой плотностью на каждом шаге до сходимости.
  2. На каждой итерации скользящее окно смещается в сторону областей с более высокой плотностью за счет смещения центральной точки на среднее значение точек внутри окна (отсюда и название). Плотность внутри скользящего окна пропорциональна количеству точек внутри него.Естественно, при переходе к среднему значению точек в окне он будет постепенно перемещаться в области с более высокой плотностью точек.
  3. Мы продолжаем сдвигать скользящее окно в соответствии со средним значением до тех пор, пока не будет направления, в котором сдвиг может вместить больше точек внутри ядра. Посмотрите на рисунок выше; мы продолжаем перемещать круг, пока не перестанем увеличивать плотность (т.е. количество точек в окне).
  4. Этот процесс шагов с 1 по 3 выполняется с множеством скользящих окон, пока все точки не окажутся внутри окна.Когда несколько скользящих окон перекрываются, окно, содержащее наибольшее количество точек, сохраняется. Затем точки данных группируются в соответствии со скользящим окном, в котором они находятся.

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

Весь процесс кластеризации среднего сдвига

В отличие от кластеризации K-средних, нет необходимости выбирать количество кластеров, поскольку средний сдвиг автоматически обнаруживает это.Это огромное преимущество. Тот факт, что центры кластера сходятся к точкам максимальной плотности, также весьма желателен, поскольку это довольно интуитивно понятно и хорошо подходит для естественного управления данными. Недостатком является то, что выбор размера / радиуса окна «r» может быть нетривиальным.

Пространственная кластеризация приложений с шумом на основе плотности (DBSCAN)

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

DBSCAN Smiley Face Clustering
  1. DBSCAN начинается с произвольной начальной точки данных, которая не была посещена. Окрестность этой точки выделяется с использованием расстояния epsilon ε (все точки, находящиеся в пределах расстояния ε, являются точками окрестности).
  2. Если в этой окрестности имеется достаточное количество точек (согласно minPoints), то начинается процесс кластеризации, и текущая точка данных становится первой точкой в ​​новом кластере.В противном случае точка будет помечена как шум (позже эта зашумленная точка может стать частью кластера). В обоих случаях эта точка помечается как «посещенная».
  3. Для этой первой точки в новом кластере точки в пределах ее окрестности расстояния ε также становятся частью того же кластера. Эта процедура приведения всех точек в окрестности ε к одному кластеру затем повторяется для всех новых точек, которые были только что добавлены в группу кластеров.
  4. Этот процесс шагов 2 и 3 повторяется до тех пор, пока не будут определены все точки в кластере i.e все точки в пределах ε окрестности кластера были посещены и помечены.
  5. Как только мы закончим с текущим кластером, новая непосещенная точка извлекается и обрабатывается, что приводит к обнаружению следующего кластера или шума. Этот процесс повторяется до тех пор, пока все точки не будут отмечены как посещенные. Поскольку в конце этого процесса все точки были посещены, каждая точка будет отмечена либо как принадлежащая кластеру, либо как шумовая.

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

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

Кластеризация ожидания – максимизации (EM) с использованием моделей смешения гауссов (GMM)

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

Два случая отказа для К-средних.

Гауссовские модели смеси (GMM) дают нам больше гибкости, чем К-средние. С GMM мы предполагаем, что точки данных распределены по Гауссу; это менее ограничительное предположение, чем утверждение, что они являются круговыми с использованием среднего. Таким образом, у нас есть два параметра для описания формы кластеров: среднее значение и стандартное отклонение! Если взять пример в двух измерениях, это означает, что кластеры могут принимать любую эллиптическую форму (поскольку у нас есть стандартное отклонение как по оси x, так и по оси y).Таким образом, каждое гауссово распределение относится к одному кластеру.

Чтобы найти параметры гауссианы для каждого кластера (например, среднее значение и стандартное отклонение), мы будем использовать алгоритм оптимизации, называемый ожиданием – максимизацией (EM). Взгляните на рисунок ниже как иллюстрацию подгонки гауссиан к кластерам. Затем мы можем приступить к процессу кластеризации ожидания – максимизации с использованием GMM.

EM-кластеризация с использованием GMM
  1. Мы начинаем с выбора количества кластеров (как это делает K-Means) и случайной инициализации параметров гауссова распределения для каждого кластера.Можно попытаться дать хорошее предположение для начальных параметров, также быстро взглянув на данные. Хотя обратите внимание, как видно на графике выше, это не на 100% необходимо, поскольку гауссианы начинают как очень плохие, но быстро оптимизируются.
  2. Учитывая эти гауссовские распределения для каждого кластера, вычислите вероятность того, что каждая точка данных принадлежит определенному кластеру. Чем ближе точка к центру Гаусса, тем больше вероятность, что она принадлежит этому кластеру. Это должно иметь интуитивный смысл, поскольку с распределением Гаусса мы предполагаем, что большая часть данных находится ближе к центру кластера.
  3. На основе этих вероятностей мы вычисляем новый набор параметров для гауссовских распределений, чтобы максимизировать вероятности точек данных в кластерах. Мы вычисляем эти новые параметры, используя взвешенную сумму позиций точек данных, где веса - это вероятности принадлежности точки данных к этому конкретному кластеру. Чтобы объяснить это наглядно, мы можем взглянуть на рисунок выше, в частности, на желтый кластер в качестве примера. Распределение начинается случайным образом на первой итерации, но мы видим, что большинство желтых точек находятся справа от этого распределения.Когда мы вычисляем сумму, взвешенную по вероятностям, даже несмотря на то, что есть некоторые точки около центра, большинство из них находятся справа. Таким образом, естественно, что среднее значение распределения смещается ближе к этому набору точек. Мы также можем видеть, что большинство точек расположены «сверху-справа-снизу-слева». Поэтому стандартное отклонение изменяется, чтобы создать эллипс, который больше соответствует этим точкам, чтобы максимизировать сумму, взвешенную по вероятностям.
  4. Шаги 2 и 3 повторяются итеративно до сходимости, когда распределения не сильно меняются от итерации к итерации.

Использование GMM дает два ключевых преимущества. Во-первых, GMM намного больше гибких с точки зрения кластерной ковариации , чем K-средних; из-за параметра стандартного отклонения кластеры могут принимать любую форму эллипса, а не ограничиваться кругами. К-средние фактически являются частным случаем GMM, в котором ковариация каждого кластера по всем измерениям приближается к нулю. Во-вторых, поскольку GMM используют вероятности, они могут иметь несколько кластеров на точку данных. Итак, если точка данных находится в середине двух перекрывающихся кластеров, мы можем просто определить ее класс, сказав, что она принадлежит X-процентов к классу 1 и Y-процентам к классу 2.То есть GMM поддерживают смешанное членство .

Агломеративная иерархическая кластеризация

Алгоритмы иерархической кластеризации делятся на 2 категории: нисходящие и восходящие. Восходящие алгоритмы обрабатывают каждую точку данных как единый кластер вначале, а затем последовательно объединяют (или агломерат ) пары кластеров, пока все кластеры не будут объединены в один кластер, содержащий все точки данных. Таким образом, восходящая иерархическая кластеризация называется иерархической агломеративной кластеризацией или HAC .Эта иерархия кластеров представлена ​​в виде дерева (или дендрограммы). Корень дерева - это уникальный кластер, в котором собраны все образцы, а листья - это кластеры только с одним образцом. Перед тем, как перейти к шагам алгоритма, посмотрите рисунок ниже.

Агломеративная иерархическая кластеризация
  1. Мы начинаем с обработки каждой точки данных как одного кластера, т.е. если в нашем наборе данных есть X точек данных, то у нас есть X кластеров. Затем мы выбираем метрику расстояния, которая измеряет расстояние между двумя кластерами.В качестве примера мы будем использовать среднее значение связи , которое определяет расстояние между двумя кластерами как среднее расстояние между точками данных в первом кластере и точками данных во втором кластере.
  2. На каждой итерации мы объединяем два кластера в один. Два кластера, которые необходимо объединить, выбираются как кластеры с наименьшей средней связью. То есть, согласно выбранной нами метрике расстояния, эти два кластера имеют наименьшее расстояние между собой и, следовательно, наиболее похожи и должны быть объединены.
  3. Шаг 2 повторяется до тех пор, пока мы не достигнем корня дерева, т.е. у нас будет только один кластер, содержащий все точки данных. Таким образом, мы можем выбрать, сколько кластеров мы хотим в конце, просто выбрав, когда прекратить объединение кластеров, то есть когда мы перестанем строить дерево!

Иерархическая кластеризация не требует от нас указывать количество кластеров, и мы даже можем выбрать, какое количество кластеров выглядит лучше всего, поскольку мы строим дерево. Кроме того, алгоритм нечувствителен к выбору метрики расстояния; все они, как правило, работают одинаково хорошо, тогда как с другими алгоритмами кластеризации выбор метрики расстояния имеет решающее значение.Особенно хороший вариант использования методов иерархической кластеризации - это когда базовые данные имеют иерархическую структуру, и вы хотите восстановить иерархию; другие алгоритмы кластеризации не могут этого сделать. Эти преимущества иерархической кластеризации достигаются за счет более низкой эффективности, поскольку она имеет временную сложность O (n³) , в отличие от линейной сложности K-средних и GMM.

.

Смотрите также