Open Research · fancy color · ML
Две версии ML для fancy-цвета: от разметчиков к сканеру Cutwise
Аннотация. Две небольшие модели пытаются предсказать интенсивность fancy-цвета, но делают это принципиально по-разному. V1 учится на 153 записях, CHROMA и — в полной версии — человеческих разметках: модель с одной насыщенностью дала 64.7% accuracy, EBM на полном наборе — 76.5%. Последний результат нельзя называть автономным, потому что мнение разметчика уже есть во входах. V2 использует 226 очищенных записей Cutwise, сканерную колориметрию и форму камня; CatBoost показал 85.93% accuracy по кросс-валидации при ранговой MAE 0.208. Разбираем, почему цифры V1 и V2 нельзя напрямую сравнивать, где в данных прячется дисбаланс классов и зачем модели право воздержаться от решения. GIA здесь — язык терминологии, не источник автоматического грейдинга. Ни одна версия не заменяет лабораторное заключение.
Ключевые слова: fancy color, интенсивность цвета бриллианта, CatBoost, Cutwise, OctoNus, GIA
Введение
В fancy-цвете особенно легко спутать впечатление с измерением. «Яркий», «редкий», «дорогой» — хорошие слова для торгового разговора, но плохие признаки для модели. Интенсивность связана с оттенком, насыщенностью, светлотой, огранкой и светом, в котором показывают камень. Лаборатория выстраивает для этого собственную процедуру; коммерческие данные почти всегда живут по менее строгим правилам.
Поэтому машинное обучение не стоит выдавать за новый способ сертификации. Его более скромная, но полезная роль — разобрать закономерности в известной разметке, найти спорные записи, проверить, где инструментальные показатели действительно несут сигнал. В таком режиме модель — рабочий прибор аналитика, а не автоматический геммолог.
В материале сопоставлены две версии. V1 училась на 153 наблюдениях. В минимальной постановке она видела CHROMA, в полной — ещё две человеческие разметки. V2 построена на 226 очищенных записях из открытых проектов Cutwise и получает сканерную колориметрию с формой камня. Вторая версия ближе к предварительному скринингу, потому что перед входом в модель оператору не нужно назвать класс. Это не делает её заменой заключения.
Точность в этом отчёте — это точность предсказания целевого ярлыка в конкретной выборке и при выбранной схеме разбиения. Она не равна доле «правильно определённых GIA-камней» во всём мире. Для редких классов и соседних градаций это различие решает почти всё.
Метод и источники
Работа объединяет два экспериментальных контура. В V1 классы выстроены в порядок Y-Z, Light, Fancy, Intense, Vivid. Исходный размер — n=153. В признаках есть CHROMA, а в полной конфигурации — ЦВЕТ_ПРОГНОЗ и ЦВЕТ_ТАБЛИЦА, то есть результаты человеческой маркировки. Сравнивались Random Forest и Explainable Boosting Machine (EBM); качество оценивалось кросс-валидацией.
Перед расчётом V2 данные очистили, после чего осталось n=226 cleaned. В наборе представлены Cushion, Pear, Oval, Radiant. Модель получает координаты LCH, Munsell, Cutwise Color и форму. Гистограмма, построенная в рабочем процессе, оказалась пустой. Это дефект визуализации, а не свидетельство равномерного или «хорошего» распределения данных. Распределение классов поэтому берётся из прямого подсчёта строк.
Для V2 проверялись CatBoost, XGBoost, Decision Tree, Random Forest и логистическая регрессия. Рядом с accuracy приведена средняя абсолютная ошибка ранга, MAE. Классы интенсивности упорядочены: промах на соседнюю ступень не равен переходу через две или три. MAE это замечает, хотя не говорит о коммерческой цене ошибки.
Технологический контекст дают материалы OctoNus о fancy-color оптимизации и платформа Cutwise. Научным фоном служит King et al., 1994, Gems & Gemology, 30(4):220–242. GIA в названии и обсуждении обозначает привычный язык интенсивности; обучающие ярлыки GIA не предполагаются, если это не сказано о самом наборе.
Что предсказывается, а что нет
Целевая переменная здесь — дискретный класс интенсивности, уже присутствующий или назначенный в исходных данных. Это не прямое физическое измерение цвета и не денежная оценка. Модели не определяют цену, происхождение, чистоту, полировку, качество сертификата или инвестиционную привлекательность. И они не обещают, что два камня с близкими координатами будут одинаково выглядеть в любом свете.
Порядок классов важен. Light ближе к Fancy, чем к Vivid; Intense обычно соседствует с Fancy и Vivid, а не с Light. Классификатор, который в основном ошибается на соседнюю ступень, может оказаться полезнее модели с такой же accuracy, но редкими дальними промахами. В продаже и соседняя ошибка иногда болезненна: Intense и Vivid создают у покупателя разные ожидания.
Разделять надо две задачи. Первая — предсказать уже известную разметку в документированном датасете. Вторая — независимо установить цветовой грейд конкретного камня. Отчёт относится к первой. Вторая требует стандартизированной процедуры, прибора, наблюдения и ответственности лаборатории.
V1: выборка, классы и CHROMA
В V1 — n=153 записей. Диапазон CHROMA составляет примерно ≈37.0–92.8. Классы распределены неравномерно: Y-Z — 19, Light — 26, Fancy — 76, Intense — 25, Vivid — 7. Fancy почти в одиннадцать раз многочисленнее Vivid. В такой структуре общая точность легко выглядит лучше, чем реальное положение редких классов.
| Класс V1 | Число наблюдений |
|---|---|
| Y-Z | 19 |
| Light | 26 |
| Fancy | 76 |
| Intense | 25 |
| Vivid | 7 |
| Всего | 153 |
Базовая Random Forest, которой дали только CHROMA, получила 64.7% accuracy и F1macro 0.622. Результат содержательный. Насыщенность действительно помогает отличать интенсивность, но один числовой признак не удерживает границы всей шкалы. Похожие значения могут встретиться у разных оттенков, форм, пропорций и условий измерения.
Полная Random Forest достигла 69.9% accuracy и F1 0.698. EBM на полном наборе — 76.5% accuracy и F1 0.742. В интерпретируемой модели важность CHROMA составляет примерно ≈1.62. Это не процент вклада и не физическая константа. Речь о важности внутри конкретной модели, собранной на конкретном представлении данных.
Главный нюанс V1 прячется именно в росте результата. Полные модели видят ЦВЕТ_ПРОГНОЗ и ЦВЕТ_ТАБЛИЦА — оценки человека. Такой алгоритм нельзя честно предлагать как способ назначить грейд до ручной разметки: экспертный сигнал уже попал на вход. Зато он годится для контроля согласованности, сравнения двух разметок, поиска необычных записей и внутреннего аудита решений.
Здесь не стоит прятать термин «утечка» за технической формулировкой. Это не обязательно ошибка в коде. Иногда модель честно получает колонку, которой в реальном процессе на этот момент ещё нет. Тогда оценка качества отвечает на вопрос «как хорошо алгоритм повторяет уже начатое экспертное решение», а не «что он сделает до эксперта». Для внутреннего контроля это может быть ровно нужной задачей. Для обещания автоматического грейда — уже нет.
V1: сравнение классов и цена дисбаланса
Макро-F1 ставит каждый класс в равные условия и потому здесь информативнее одной общей accuracy. Ниже — per-class F1 для трёх постановок: Random Forest только с CHROMA, полная Random Forest и EBM.
| Класс | RF: только CHROMA | Full RF | EBM |
|---|---|---|---|
| Y-Z | 0.821 | 0.895 | 0.895 |
| LIGHT | 0.583 | 0.565 | 0.571 |
| FANCY | 0.730 | 0.752 | 0.820 |
| INTENSE | 0.261 | 0.480 | 0.654 |
| VIVID | 0.714 | 0.800 | 0.769 |
Самый тревожный сигнал в таблице — 0.261 у INTENSE в модели с одним CHROMA. Это не второстепенная деталь. Intense лежит на стыке Fancy и Vivid, поэтому уязвим к шуму измерения, неясной разметке и малому числу примеров. С дополнительными признаками F1 растёт до 0.480 у Full RF и 0.654 у EBM. Но это улучшение нельзя отделить от того факта, что часть новых признаков уже выражает человеческое решение.
У Vivid F1 выглядит высоким при всего семи наблюдениях. Уверенности это не добавляет: несколько примеров в тестовом фолде способны резко сдвинуть показатель. LIGHT, напротив, почти не выигрывает от добавления признаков — 0.583, 0.565, 0.571. В прикладной системе после такого результата полезнее показывать не только метку, но и степень уверенности, ближайшие альтернативы и причину отправить случай на ручную проверку.
V1 полезнее как контроль согласованности
Пока человеческие метки остаются среди признаков, V1 логичнее использовать для поиска расхождений между двумя разметчиками, CHROMA и историческим решением, чем для автоматической выдачи грейда. Гипотезу можно проверить на свежем наборе с заранее закрытой независимой экспертизой.
V2: переход к измерениям сканера
V2 задаёт другой вопрос: получится ли получить рабочий прогноз без разметчика на входе? Здесь остались n=226 cleaned записей форм Cushion, Pear, Oval и Radiant. Вместо ручных полей используются светлота и насыщенность LCH, Munsell, Cutwise Color и форма. При одинаково стандартизированном измерении этот набор признаков теоретически можно получить повторно — до предварительного мнения оператора.
Целевые классы V2 распределились так: Intense 87 (38.5%), Vivid 50 (22.1%), Fancy 47 (20.8%), Deep 24 (10.6%), Light 18 (8.0%). Deep в V1 отсутствовал. По этой причине V1 и V2 нельзя читать как два замера одной шкалы и объявлять вторую версию «лучше на столько-то пунктов». Это другие входы, другая выборка и другой состав классов.
| Класс V2 | Число наблюдений | Доля |
|---|---|---|
| Intense | 87 | 38.5% |
| Vivid | 50 | 22.1% |
| Fancy | 47 | 20.8% |
| Deep | 24 | 10.6% |
| Light | 18 | 8.0% |
| Всего | 226 | 100% |
Пустая гистограмма не сообщает ничего ни о бимодальности, ни о выбросах, ни о форме распределения непрерывных признаков. Корректнее зафиксировать сбой графика и опереться на таблицу классов. При повторе работы визуализацию нужно чинить отдельно, не подменяя её предположениями о данных.
Корреляции V2 и риск дублирующих признаков
Зафиксированы следующие Pearson-корреляции с целевой структурой или сигналом интенсивности: chroma/lightness ratio 0.819, cutwise_color_chroma 0.805, lch_chroma 0.785, lch_lightness −0.492. Положительная связь у насыщенности и её отношения к светлоте согласуется с ожиданием: более сильный цветовой сигнал в этом наборе чаще идёт с более высокой интенсивностью. Светлота LCH движется в обратную сторону.
Корреляция не превращается из-за этого в причинное объяснение. Несколько колонок могут описывать близкое физическое свойство разными формулами. Для линейной модели это риск мультиколлинеарности; для дерева и бустинга — возможность опереться на дублирующие сигналы и затем хуже перенестись на другой прибор. Анализ важностей в такой ситуации легко переоценить.
Форма в модели — не украшение таблицы. Cushion, Pear, Oval и Radiant по-разному работают с огранкой, распределением света и коммерческим описанием цвета. Но форму нельзя позволить превратить в косвенный ярлык. Валидация должна проверять, не запоминает ли алгоритм небольшие группы или источник данных вместо устойчивой закономерности.
V2: модели и кросс-валидация
По CV V2 первой стала CatBoost: 85.93% accuracy и ранговая MAE 0.208. XGBoost получила 81.64% / 0.278, Decision Tree — 79.97% / 0.307, Random Forest — 77.66% / 0.353, логистическая регрессия — 73.02% / 0.443.
| Модель | Accuracy CV | MAE ранга |
|---|---|---|
| CatBoost | 85.93% | 0.208 |
| XGBoost | 81.64% | 0.278 |
| Decision Tree | 79.97% | 0.307 |
| Random Forest | 77.66% | 0.353 |
| Logistic Regression | 73.02% | 0.443 |
Разрыв между CatBoost и логистической регрессией похож на след нелинейных границ и взаимодействий между цветовыми признаками и формой. Но из него нельзя делать вывод, что CatBoost «понимает цвет». Модель лучше разделяет ярлыки именно этого набора при этой схеме кросс-валидации. Следующая проверка должна включать отложенную партию, результаты по формам, матрицы ошибок и калибровку вероятностей.
MAE 0.208 означает небольшую среднюю ошибку в закодированном порядковом пространстве. Она не назначает стоимость промаха. Если бизнес-правило не позволяет назвать Vivid вместо Intense, понадобятся отдельные пороги, анализ вероятностей и механизм отказа от решения. Одна уверенная с виду метка делает риск невидимым.
Здесь начинается практическая развилка. Модель можно заставить отвечать на каждый запрос — и получить красивую сводную метрику. А можно заранее выделить диапазон, где она не выбирает класс и возвращает запись специалисту. Второй путь уменьшит долю автоматически обработанных камней, зато не замаскирует пограничные случаи. Для small data это обычно честнее, чем имитировать безошибочный автомат.
Сканерный контур пригоден для triage
При одинаковой калибровке Cutwise-измерений и контроле форм V2 может ранжировать записи по вероятной интенсивности и выделять пограничные случаи до ручной проверки. Подтвердить это можно только на независимом наборе, который не участвовал в обучении, с заранее записанным правилом, когда модель обязана воздержаться.
OctoNus, Cutwise и границы технического слоя
Страница OctoNus о fancy-color diamonds задаёт технологический контекст оптимизации работы с цветным камнем. Cutwise выступает источником открытых проектных данных и измерительных представлений, использованных во V2. В этом смысле модель интересна как мост между сканером и аналитикой: её признаки можно получить раньше ручного классификационного комментария.
Из этого не следует официальная сертификация со стороны OctoNus, Cutwise или GIA. Камень не похож на ровный цветовой образец. На результат влияют огранка, ориентация, отражения, флуоресценция, освещение, настройка прибора и подготовка образца. Сканер даёт повторяемый сигнал в пределах своей измерительной цепочки; перенос показаний на другой прибор без калибровки нельзя считать автоматическим.
King et al. (1994) полезен именно этим напоминанием: терминология fancy-color связывает наблюдение, сопоставление и систематическое описание, а не сводится к одному универсальному датчику. В карточке товара модельный ярлык нельзя ставить рядом с лабораторным сертификатом так, будто оба документа равны по статусу.
Синтез и обсуждение
V1 показала, что в маленьком наборе CHROMA и дополнительные признаки содержат сильный классификационный сигнал: от 64.7% у CHROMA-only RF до 76.5% у EBM. Однако рост не означает автономной автоматизации. Полные модели получают на вход человеческие разметки. Самым уязвимым местом оказался Intense, а Vivid слишком мал для широких уверенных выводов.
V2 устраняет именно эту проблему входа. CatBoost видит сканерные показатели и форму, не мнение разметчика, и при n=226 cleaned получает 85.93% CV accuracy и MAE 0.208. Это не «улучшение V1 на 9,43 пункта»: различаются и классы, и данные, и постановка задачи.
Общий вывод скромнее — и полезнее громкой формулы. Измеряемые цветовые признаки позволяют строить в ограниченных данных рабочие классификаторы. Но нужно честно показать входы, разбиение, дисбаланс и зоны неуверенности. Нормальный продуктовый интерфейс здесь — подсказка, вероятность, соседние классы и передача спорных записей человеку.
Остаётся вопрос, как встроить этот вывод в реальный процесс. В сортировке партия может сначала пройти сканер, затем модельный ранжирующий слой, а уже потом ручную проверку случаев с низкой уверенностью. В карточке товара модельную оценку лучше хранить как внутренний технический атрибут, а не выдавать за часть лабораторного документа. Такой порядок не делает обработку «объективной» в философском смысле, но оставляет аудитируемую цепочку: измерение, прогноз, решение человека.
Сценарии и гипотезы
Ошибки будут соседними, но это надо измерить
Низкая MAE V2 и упорядоченные классы позволяют предположить, что заметная доля ошибок приходится на соседние интенсивности. Пока нет confusion matrix, это только правдоподобное допущение. На новом тесте стоит посчитать промахи на один, два и более рангов.
Intense останется хрупким классом
В V1 INTENSE получил F1 0.261 при одном CHROMA и 0.654 у EBM. Вероятное объяснение — пограничное положение класса и ограниченная выборка. Его можно проверить, собрав независимые примеры вокруг Fancy/Intense и Intense/Vivid с сохранением источника и условий измерения.
Форма улучшает прогноз неравномерно
Различия Cushion, Pear, Oval и Radiant могут означать, что форма помогает одним классам больше других. Нужны ablation-тест без формы и кросс-валидация, стратифицированная по форме. Только так можно отличить реальный эффект от запоминания состава выборки.
Ограничения
Выборки невелики: 153 записи в V1 и 226 после очистки в V2. Классы несбалансированы: Vivid V1 включает семь наблюдений, Light V2 — восемнадцать. Кросс-валидация снижает зависимость от одного разбиения, но не заменяет внешний тест и не подтверждает переносимость на другие партии, цвета, формы, лаборатории или настройки прибора.
В V1 есть риск утечки смысла через ручные признаки. ЦВЕТ_ПРОГНОЗ и ЦВЕТ_ТАБЛИЦА помогают предсказывать ярлык, поскольку уже связаны с экспертным решением. V2 этого конкретного риска избегает, но зависит от очистки, доступности сканерных значений и набора форм. Пустая гистограмма не даёт визуальных оснований судить о непрерывных признаках.
Ни V1, ни V2 не заменяют GIA. Они не устанавливают официальный цветовой грейд, не выдают сертификат и не определяют стоимость. Для продажи, страхового документа и публичной карточки важно различать модельную оценку, внутренний скрининг и лабораторное заключение.
Выводы
- V1 на n=153 показала информативность CHROMA, но её полные модели зависят от человеческих разметок на входе.
- V1: RF только CHROMA — 64.7% и F1macro 0.622; Full RF — 69.9% и F1 0.698; EBM — 76.5% и F1 0.742.
- Intense остаётся зоной неопределённости V1; редкий Vivid требует осторожного чтения метрик.
- V2 на n=226 cleaned использует сканерную колориметрию и форму; CatBoost лидирует с 85.93% CV accuracy и MAE 0.208.
- Наиболее реалистичное применение моделей — исследование, triage и контроль качества с участием человека, а не замена GIA.
FAQ
Можно ли по сканеру предсказать интенсивность fancy-цвета? В V2 сочетание сканерных признаков и формы дало CatBoost 85.93% accuracy по CV. Это результат конкретного набора, а не гарантия для любого камня или прибора.
Почему V1 нельзя назвать полностью автоматической? Полная V1 использует ЦВЕТ_ПРОГНОЗ и ЦВЕТ_ТАБЛИЦА, то есть человеческие разметки. Человек уже участвует на входе модели.
Заменяет ли модель заключение GIA? Нет. Это внутренний исследовательский прогноз класса, а не лабораторный грейд, сертификат или оценка стоимости.
Что означает MAE 0.208? Это средняя абсолютная ошибка по числовому порядку классов. Метрика дополняет accuracy и показывает, насколько далеко от истинной градации в среднем оказался прогноз.
Почему Intense сложнее предсказывать? В V1 класс расположен между соседними градациями и показал F1 от 0.261 до 0.654 в разных моделях. Нужны дополнительные пограничные примеры и матрица ошибок.
Библиография
- OctoNus. Fancy-color diamonds: https://www.octonus.com/projects/fancy-color-diamonds
- Cutwise. Публичные проекты и описание платформы: https://cutwise.com/pr/
- King, J. M., Moses, T. M., Shigley, J. E., Welbourn, C. M., Lawson, S. C., Cooper, M. 1994. Characterizing Natural-Color Type IIb Blue Diamonds. Gems & Gemology, 30(4), 220–242.
- BrillPulse. Экспериментальные датасеты и ноутбуки V1/V2, использованные для указанных метрик.
- GIA. Публичные материалы о терминологии и лабораторной оценке цветных бриллиантов; используется как контекст, не как сертификат модели.