Добавить в корзинуПозвонить
Найти в Дзене
Герман Геншин

Этот хитрый Python-скрипт вскроет реальную цену любого ноутбука: производители не хотят, чтобы вы это знали!

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

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

Зачем создавать свой собственный "ценовой калькулятор" ноутбуков?

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

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

Я больше не куплю ноутбук без этих 10 функций — и вам не советую!

Всего пара пунктов, но эти вещи должны быть стандартом по умолчанию!

Базовое знание линейной регрессии из школьного курса натолкнуло меня на мысль — ведь можно "обучить" модель предсказывать цену по ключевым параметрам. Python — идеальный инструмент: прост даже для новичков и открывает огромное поле для экспериментов с данными.

Какие Python-библиотеки нужны для анализа данных?

Я использовал стандартные Python-инструменты, которые легко поставить в отдельную среду — например, с помощью Mamba. Системный Python обычно служит нуждам самой ОС (напоминаю: в Linux лучше его не трогать). Для экспериментов стоит создать виртуальное окружение, например через VirtualEnv.

Первая библиотека — NumPy. Без неё не обойтись: это основа для численных расчетов, статистики и линейной алгебры.

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

Для визуализации отлично подойдёт Seaborn: делает наглядные графики, гистограммы и диаграммы буквально в пару строк.

Как быстро и красиво визуализировать данные с Python и Seaborn

Даже если вы новичок, красивые графики вам по плечу — стоит только попробовать!

Ещё один мой секрет — библиотека Pingouin для статистики. Не нужно вспоминать сложные формулы: все популярные методы, включая множественную регрессию, реализованы прямо "из коробки". Очень удобно, когда нужно учесть сразу несколько характеристик.

Всё это можно настроить почти на любом UNIX-подобном дистрибутиве (и даже на Windows, если воспользоваться WSL). Как установить — подробностей полно в интернете.

Я предпочитаю работать в Jupyter Notebook — там легко тестировать код, смотреть результаты и хранить все свои наработки. Пример скрипта выложил на своем GitHub — можно заглянуть за подробностями, которые не поместились в статью.

Если используете Mamba, создайте новое окружение буквально одной командой в терминале Linux — это проще, чем кажется.

Где брать данные о ноутбуках?

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

На Kaggle можно найти обширную таблицу с нужными параметрами: тактовая частота процессора, объём оперативной памяти, размеры накопителей и разрешение экрана по обеим осям — всё, что нужно для анализа.

Цены в базе, правда, указаны в евро — но пересчитать в рубли не проблема: достаточно взять актуальный курс (например, на июль 2025 года). Для удобства сразу делаю перерасчёт в рубли или в доллары по текущему курсу.

Как "натренировать" модель для вычисления честных цен?

Когда окружение готово и нужная база ноутбуков загружена — дело за малым: подключаем необходимые библиотеки:

Пара строк — и NumPy, Pandas, Seaborn и Pingouin готовы к работе. Префиксы np, pd, sns, pg ускоряют процесс. Строчки с символом "%" — это команды Jupyter, чтобы графики отображались прямо в ноутбуке, а не в отдельных окнах.

Данные подгружаются через Pandas, структуру смотрю с помощью head():

-2

Функция describe() покажет сводную статистику для всех числовых столбцов:

-3

Появятся средние значения, медианы, стандартные отклонения и диапазоны — в общем, всё для быстрой оценки разброса цен и характеристик.

Чтобы визуально оценить, как разбросаны данные, строю гистограмму в Seaborn:

-4

Видно, что "хвост" распределения тянется вправо — дорогих ноутбуков меньше, но они тянут среднюю цену вверх.

Дальше учим модель на формуле:

цена = a * (частота процессора) + b * (объём оперативной памяти) + c * (диагональ экрана в дюймах) + ...

Здесь a, b, c — это коэффициенты, их-то и вычисляет регрессия. Получается воображаемая гиперплоскость в пространстве характеристик — сложнее прямой линии, но задача хорошо решается средствами Python.

чтобы понять, какие параметры действительно значимы, запускаю регрессию в Pingouin по наиболее "весомым" признакам: размеру, процессору, разрешению экрана, массе, объёму накопителя и т.д.

-5

В левой колонке — значения коэффициентов, в правой — степень влияния характеристики на финальную цену. В этом примере объём оперативной памяти оказался главным "драйвером" стоимости. r2 — показатель качества модели: у меня вышло примерно 0,66, что вполне неплохо.

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

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

Сколько на самом деле стоит "бренд" в ноутбуке?

В моём анализе я рассчитывал цену только по железу, но любопытно — насколько бренд влияет на итоговую сумму? Проверяем это с помощью дисперсионного анализа (тест Краскела-Уоллиса). Он отлично подходит, потому что распределение цен сильно неравномерное, как видно на гистограмме — и всё делается через Pingouin.

Суть: тестирует гипотезу — а есть ли связь между брендом и стоимостью?

-6

Результат говорит сам за себя: p-значение равно нулю. Значит бренд реально влияет на цену, и нулевая гипотеза отклоняется. Обычно p-value показывают в экспоненциальной форме (для наглядности), но, чтобы не перегружать показатели, я округлил его.

В итоге Python позволил мне быстро рассчитать "объективную" стоимость любого ноутбука по характеристикам — и наглядно увидеть, сколько приходится доплачивать за модный логотип. Его библиотеки делают подобный анализ простым и быстрым — а вручную получить такие выводы почти нереально.

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

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

Также подписывайтесь на нас в: