NFT — это изображение в виде цифрового токена. Затем эти токены продаются онлайн. NFT может быть чем угодно в цифровой форме. Каждое изображение NFT имеет свою цену, и мы применяем методы машинного обучения для прогнозирования цены на изображения NFT.
Для реализации этой постановки задачи мы собрали изображения и соответствующие цены, используя скрипт selenium, около 5000 изображений из нескольких источников. Чтобы извлечь информацию из всех изображений, мы использовали OpenCV и NumPy и собрали интенсивность трех пикселей. В цветовом пространстве RGB мы преобразовали трехмерные данные в одномерные, которые работают как независимые данные для алгоритмов машинного обучения и цены каждого изображения в качестве зависимой функции.
Используемые методы
• Numpy
• Pandas
• Seaborn
• Matplotlib
• Статистика
• OpenCV
• Машинное обучение Контролируемые методы
С помощью NumPy и pandas мы удалили нежелательное изображение, которое не несет никакой информации. Теперь у нас есть независимые функции. Мы использовали контролируемые методы машинного обучения, такие как алгоритмы регрессии и классификации_регрессии.
Используемые алгоритмы
• Множественная линейная регрессия
• Регрессор KNN
• Регрессор опорных векторов
• Регрессор Adaboost
• Дерево решений
Чтобы обучить данные для алгоритмов ML, мы разделили данные на обучение и тестирование, где обучающая часть содержит 80 % данных, а тестовая — 20 % данных.
Мы обучили регрессор KNN, регрессор опорных векторов. , дерево решений и регрессор Adaboost. Но, к сожалению, результаты были не такими хорошими, потому что KNN нужно собирать идеальные k-значения. Проблема заключается в регрессии, а не в классификации, поэтому из-за слишком большого диапазона распределения значений из независимых данных.
Для метода опорных векторов из-за высокой размерности предельного расстояния и поддержки данных векторы очень близки к друг друга. Таким образом, мы сталкиваемся с проблемой переобучения при реализации машины опорных векторов.
Множественная линейная регрессия
Множественная линейная регрессия — это метод регрессии, результаты которого лучше по сравнению с KNN-R и SVM-R. Первоначально точность поезда для модели MLR составляла 91, а для теста — 82.
Поэтому мы улучшили производительность модели, используя методы разработки признаков и регуляризации.
Обработка выбросов для MLR
Поскольку функции данных имеют больший размер, нет возможности выбрать лучшие функции, потому что каждый пиксель важен и несет некоторую информацию. С помощью научного набора и функционального механизма мы обработали выбросы, используя область 5-го квантиля и 95-го квантиля, чтобы удалить небольшой объем данных, которые находятся далеко от остальных точек данных.
Масштабирование функций для MLR:
Очищаем выбросы. Есть некоторые особенности, следующие за асимметрией, и некоторые особенности, не соответствующие нормальному распределению. Используя структуру механизма функций, мы можем уменьшить значения пикселей с помощью стандартизации. Используя преобразование Йео-Джонсона, мы обработали асимметрию, чтобы следовать нормальному распределению. Поскольку преобразование Йео-Джонсона не влияет на отрицательные значения, этот метод помогает нам обрабатывать данные.
Несмотря на то, что мы обработали выбросы и асимметрию данных, прирост точности теста не так высок. Поэтому мы собрали больше изображений и увеличили размер данных. Чтобы проверить, дают ли новые добавленные данные лучшие результаты, мы скорректировали методы r2 для проверки производительности модели до и после добавления данных. Добавление данных помогает нам, но не в больших масштабах. Итак, мы приступили к решению проблем переобучения, используя методы регуляризации, такие как методы L1 и L2.
Используя эту регрессию Риджа и Лассо, мы уменьшили систематическую ошибку в небольшом масштабе и увеличили дисперсию в небольшом масштабе, обновив значения коэффициентов. Обновление значений коэффициентов и допущение ошибок, близких к нулю, повысило производительность модели.
В конечном итоге значение точности для поезда и теста равно
• Точность обучения = 98,052948845
• Точность теста = 89,674529872
Чтобы проверить, хорошо ли работает наша Модель, мы собрали несколько изображений NFT и спрогнозировали цены. В таблице ниже приведены полные результаты для наших тестовых изображений.
Полезная информация
Рекомендации
Блог: https://www.bluetickconsultants.com/price-predictions-for-nft-images.html
Код GitHub: https://github.com/bluetickconsultants/NFT_price_prediction
Другие проекты
Проекты с открытым исходным кодом: https://www.bluetickconsultants.com/open-source.html
Репозитории GitHub с открытым исходным кодом: https://github.com/orgs/bluetickconsultants/repositories
Автор:
ТОО Bluetick Consultants — https://www.bluetickconsultants.com