🍉 Как выбрать арбуз с помощью Python
Сезон арбузов в самом разгаре! Уже кушали? Если да, то точно столкнулись с извечной проблемой оптимизация процесса выбора арбуза.
Забываем дедовские методы, мы же не хотим полагаться на какую-то интуицию и субъективщину? В 21 веке такие важные решения должны приниматься исключительно на основе данных. Нам нужны метрики, пайплайны и воспроизводимые результаты!
Итак, представляю вам фреймворк
Этап 1: Сбор данных
Подходим к арбузному развалу. Наша задача — собрать первичный датасет. Для каждого экземпляра (
-
-
-
-
-
-
Этап 2: Препроцессинг и Feature Engineering
Сырые данные — мусор. Нам нужны производные признаки, которые действительно коррелируют с целевой переменной
Этап 3: Модель принятия решений (Decision Model)
Никаких
Итоговый алгоритм:
1. Подходите к развалу.
2. Достаете ноутбук, весы, рулетку, диктофон и палитру Pantone.
3. На недоумевающие взгляды продавца и других покупателей отвечаете: "Спокойно, я шарю".
4. Скрупулезно собираете датасет по 5-10 кандидатам.
5. Запускаете Jupyter-ноутбук, выполняете все ячейки.
6. Модель выдает вам
7. Покупаете его.
8. Дома разрезаете... а он неспелый.
Потому что ваша модель переобучилась на локальных данных, не учла сезонные дрифты и аномалии в поставке! Нужна MLOps-инфраструктура, постоянный мониторинг и версионирование моделей. В следующем году построим.
#хих
Сезон арбузов в самом разгаре! Уже кушали? Если да, то точно столкнулись с извечной проблемой оптимизация процесса выбора арбуза.
Забываем дедовские методы, мы же не хотим полагаться на какую-то интуицию и субъективщину? В 21 веке такие важные решения должны приниматься исключительно на основе данных. Нам нужны метрики, пайплайны и воспроизводимые результаты!
Итак, представляю вам фреймворк
Watermelon Driven Development (WDD)
.Этап 1: Сбор данных
Подходим к арбузному развалу. Наша задача — собрать первичный датасет. Для каждого экземпляра (
candidate
) нам нужны следующие фичи:-
weight
(float): Масса. Взвешиваем на местных весах. Если их нет — используем безмен или оцениваем на глаз, предварительно откалибровав руку на известном весе (например, на своем макбуке).-
volume
(float): Объем. Определяется методом погружения в таз с водой, но на рынке это может вызвать подозрения. Поэтому аппроксимируем до эллипсоида и считаем по формуле. Замеры делаем рулеткой.-
acoustic_response
(dict): Акустический отклик. Стучим по арбузу костяшкой пальца в трех разных точках (экватор, полюс №1, полюс №2). Записываем звук на диктофон. Позже прогоним через FFT-анализ для поиска резонансных частот.-
surface_pattern_complexity
(float): Сложность паттерна полосок. Фотографируем и прогоняем через простенькую CV-модель для оценки энтропии изображения. Чем контрастнее и четче полоски — тем выше метрика.-
peduncle_dryness_coefficient
(float): Коэффициент сухости хвостика. Значения от 0.0 (свежесрезанный, зеленый) до 1.0 (засохший, ломкий).-
stain_yellowness_index
(int): Индекс желтизны земляного пятна. Используем цветовую палитру Pantone для точной оценки. Градация от 1 (белый) до 10 (насыщенно-желтый).Этап 2: Препроцессинг и Feature Engineering
Сырые данные — мусор. Нам нужны производные признаки, которые действительно коррелируют с целевой переменной
sweetness_score
.def preprocess_watermelon_data(candidates: list) -> pd.DataFrame:
processed_data = []
for candidate in candidates:
# Плотность - ключевой показатель!
candidate['density'] = candidate['weight'] / candidate['volume']
# Анализируем звук: "звонкий" звук имеет пик в определенном диапазоне частот
fft_peaks = analyze_fft(candidate['acoustic_response'])
candidate['is_sound_ringing'] = 500 < fft_peaks.main_freq < 800
# Нормализуем остальные фичи
# ... (тут сложная математика)
processed_data.append(candidate)
return pd.DataFrame(processed_data)
Этап 3: Модель принятия решений (Decision Model)
Никаких
if-else
! Это слишком примитивно. Мы будем использовать взвешенную скоринговую модель. Веса подобраны на основе анализа тысяч арбузов (нет).# Веса фичей, подобранные экспертным путем в ходе A/B-теста
WEIGHTS = {
'density': 0.4,
'is_sound_ringing': 0.3,
'peduncle_dryness_coefficient': 0.15,
'stain_yellowness_index': 0.1,
'surface_pattern_complexity': 0.05,
}
def get_watermelon_score(candidate: pd.Series) -> float:
"""Рассчитывает итоговый скор для кандидата."""
score = 0
score += candidate['density'] * WEIGHTS['density']
score += candidate['is_sound_ringing'] * WEIGHTS['is_sound_ringing']
# ... и так далее для всех фичей
return score
# Выбираем арбуз с максимальным скором
best_watermelon = candidates_df.loc[candidates_df['score'].idxmax()]
Итоговый алгоритм:
1. Подходите к развалу.
2. Достаете ноутбук, весы, рулетку, диктофон и палитру Pantone.
3. На недоумевающие взгляды продавца и других покупателей отвечаете: "Спокойно, я шарю".
4. Скрупулезно собираете датасет по 5-10 кандидатам.
5. Запускаете Jupyter-ноутбук, выполняете все ячейки.
6. Модель выдает вам
id
лучшего арбуза.7. Покупаете его.
8. Дома разрезаете... а он неспелый.
Потому что ваша модель переобучилась на локальных данных, не учла сезонные дрифты и аномалии в поставке! Нужна MLOps-инфраструктура, постоянный мониторинг и версионирование моделей. В следующем году построим.
#хих
😁29 8🤣5❤3🔥3⚡1👍1👏1 1
Примеры функций для работы с файловой системой и файлами 🗂
🤡 Пока вы перевариваете этот баян, переварите ещё и немного полезной информации 🤓
– Что общего у программиста и пасечника?
– Импорт ос?
– import os
🤡 Пока вы перевариваете этот баян, переварите ещё и немного полезной информации 🤓
👍4🔥3😁2❤1🙏1👌1💯1🏆1👾1 1
У меня тоже такие мысли, конечно, периодически проскакивают, но я давно нашёл очень простой способ с этим бороться.
💬 Общайтесь с другими людьми!
Серьезно, кто постоянно в этом синдроме, вы вообще разговариваете с коллегами? 😅
Стоит мне пообсуждать с кем-то работу и любые другие профессиональные моменты, этот синдром очень быстро и надолго сдувает.
В "очередной раз" выясняется, что никто ни хрена не умеет, у всех везде велосипеды из говна и палок, вот-вот все рассыпится, сплошной треш и угар.
Главное — не получить синдром единственного адекватного человека в горящем дурдоме
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣13👍7😁5🔥2🤪2 2❤1⚡1👏1🙏1
Как выбрать стэк для ML-задач на соревнованиях?
Разбираемся на примере E-CUP 2025 от Ozon Tech. В новой статье собрали рабочие инструменты для решения типичных заданий по машинному обучению:
1️⃣ Рекомендации: предсказание следующей покупки пользователя.
2️⃣ Логистика: автопланирование курьеров.
3️⃣ Контроль качества: автоматическое выявление поддельных товаров.
Эти задачи предстоит решить на E-CUP 2025. Регистрация открыта до 17 августа включительно
Статья поможет разобраться, какие инструменты из богатой экосистемы open-source проектов лучше использовать на соревновании:
🔹 Библиотеки и фреймворки для построения рекомендательных систем и маршрутизации.
🔹 Градиентный бустинг и графовые нейросети.
🔹 Оптимизация маршрутов и работа с геоданными.
🔹 Поиск аномалий и дефектов, работа с мультимодальными данными.
Если вы участвуете в соревновании или просто ищете надежный стэк для ML-прототипов — читайте и сохраняйте: https://cnrlink.com/ecup25articlepytalk?erid=2W5zFJczGPr
Разбираемся на примере E-CUP 2025 от Ozon Tech. В новой статье собрали рабочие инструменты для решения типичных заданий по машинному обучению:
1️⃣ Рекомендации: предсказание следующей покупки пользователя.
2️⃣ Логистика: автопланирование курьеров.
3️⃣ Контроль качества: автоматическое выявление поддельных товаров.
Эти задачи предстоит решить на E-CUP 2025. Регистрация открыта до 17 августа включительно
Статья поможет разобраться, какие инструменты из богатой экосистемы open-source проектов лучше использовать на соревновании:
🔹 Библиотеки и фреймворки для построения рекомендательных систем и маршрутизации.
🔹 Градиентный бустинг и графовые нейросети.
🔹 Оптимизация маршрутов и работа с геоданными.
🔹 Поиск аномалий и дефектов, работа с мультимодальными данными.
Если вы участвуете в соревновании или просто ищете надежный стэк для ML-прототипов — читайте и сохраняйте: https://cnrlink.com/ecup25articlepytalk?erid=2W5zFJczGPr
👍4⚡2🔥1👨💻1🆒1
This media is not supported in your browser
VIEW IN TELEGRAM
Погружаемся в Матрицу! 🤖
Вышла Matrix-Game 2.0 — интерактивная модель мира, которая в реальном времени (25 FPS!) генерирует окружение по командам с клавиатуры и мыши.
Проще говоря: вы жмете «W», и нейросеть на лету дорисовывает вам мир в стиле GTA или Minecraft, в котором вы движетесь вперед. Это уже не «сделай мне ролик», а «построй мне мир, я в нем поиграю».
Все это добро опенсорсное и на Python.
GTA VII уже будет полностью так генерироваться?🤔
Для тех, кто хочет попробовать — написал гайд по запуску у себя на машине, с разбором зависимостей и кода.
👉 Читать здесь
#щупаем_сорцы
Вышла Matrix-Game 2.0 — интерактивная модель мира, которая в реальном времени (25 FPS!) генерирует окружение по командам с клавиатуры и мыши.
Проще говоря: вы жмете «W», и нейросеть на лету дорисовывает вам мир в стиле GTA или Minecraft, в котором вы движетесь вперед. Это уже не «сделай мне ролик», а «построй мне мир, я в нем поиграю».
Все это добро опенсорсное и на Python.
GTA VII уже будет полностью так генерироваться?
Для тех, кто хочет попробовать — написал гайд по запуску у себя на машине, с разбором зависимостей и кода.
👉 Читать здесь
#щупаем_сорцы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🤯2❤1🔥1😱1 1
❤3👍2👌2🙏1
Чего там, группу в Max 💩 уже надо переводить или ещё живём несколько месяцев?
Please open Telegram to view this post
VIEW IN TELEGRAM
Онлайн-сервис по охране и защите интеллектуальной собственности n’RIS представил новый лендинг — Tech n’RIS, созданный для депонирования и защиты интеллектуальной собственности в научно-технической сфере. Сервис ориентирован на разработчиков программного обеспечения, инженеров, ученых, химиков и фармацевтов.
Tech n’RIS помогает обеспечить правовую защиту тем объектам, которые не всегда подпадают под патентование, часто нуждаются в обновлениях, долго находятся в процессе государственной регистрации или требуют дополнительного подтверждения авторства — например, элементы ПО, проектные файлы, исследовательские отчеты.
Платформа позволяет фиксировать авторские права на любой стадии проекта: от технической документации до готового решения. В том числе поддерживается депонирование по хешу — без раскрытия сути разработки, что актуально для ноу-хау. Все данные хранятся в зашифрованном виде, а подтверждением служит свидетельство о депонировании с цифровой подписью и штампом даты и времени КриптоПро. Сведения о депонировании фиксируются в виде транзакции в блокчейн, что исключает возможность подделки или удаления данных.
Подробнее — на новом лендинге Tech n’RIS.
Tech n’RIS помогает обеспечить правовую защиту тем объектам, которые не всегда подпадают под патентование, часто нуждаются в обновлениях, долго находятся в процессе государственной регистрации или требуют дополнительного подтверждения авторства — например, элементы ПО, проектные файлы, исследовательские отчеты.
Платформа позволяет фиксировать авторские права на любой стадии проекта: от технической документации до готового решения. В том числе поддерживается депонирование по хешу — без раскрытия сути разработки, что актуально для ноу-хау. Все данные хранятся в зашифрованном виде, а подтверждением служит свидетельство о депонировании с цифровой подписью и штампом даты и времени КриптоПро. Сведения о депонировании фиксируются в виде транзакции в блокчейн, что исключает возможность подделки или удаления данных.
Подробнее — на новом лендинге Tech n’RIS.
👍5🤔1🆒1
Вводим «санкции» и «тарифы» на импорт Python-библиотек 🗽
Наткнулся на забавный пакет
И после этого в консоль выводится сообщение в стиле Трампа:
Это, конечно, 10/10 😂
Для тех, кто в теме, это абсолютно шикарная демонстрация monkey-patching'а
Вот сам репо◀️
Наткнулся на забавный пакет
tariff
. Он позволяет делать вот так:import tariff
# Вводим пошлины на "иностранные" пакеты
tariff.set({
"numpy": 50,
"pandas": 200,
})
# Теперь импорт будет медленнее...
import pandas
И после этого в консоль выводится сообщение в стиле Трампа:
JUST IMPOSED a 200% TARIFF on pandas! Original import took 87103 us, now takes 261309 us. American packages are WINNING AGAIN! #MIGA
Это, конечно, 10/10 😂
Для тех, кто в теме, это абсолютно шикарная демонстрация monkey-patching'а
builtins.__import__
.Вот сам репо
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣7❤4🤪3🔥1😁1
Собрали для Вас подборку нужных каналов.🧑💻
🐍 👩💻 $ sudo teach IT - рай для ботоделов!
- Как создать Телеграм-Бот?
- Где найти заказы?
- Как писать профессиональный код под высоконагруженные сервисы?
Начните свой практический путь в мире айти!
🐍 Data Science | Machinelearning [ru] - Статьи на тему data science, machine learning, big data, python, математика, нейронные сети, искусственный интеллект (artificial intelligence)
🐍 Node.JS [ru] | Серверный JavaScript - Все о разработке backend части на JavaScript (Node JS).
А так же: Express JS, Next JS, Nest, Socket.IO
🖥 PytStart - стартуй в Python с нами!
🐍 PythonTalk. Авторский канал, где Python, AI и здравый смысл встречаются. Разбор свежих open-source инструментов, мануалы, новости с IT-передовой и трезвый взгляд на AI-хайп.
🐍 Indigo Python - твой путь к мастерству в коде!
🐍 Канал вирусного аналитика, занимающегося безопасностью опенсорса и технологиями искусственного интеллекта.
Хочешь участвовать в подборке? Пиши!
- Как создать Телеграм-Бот?
- Где найти заказы?
- Как писать профессиональный код под высоконагруженные сервисы?
Начните свой практический путь в мире айти!
А так же: Express JS, Next JS, Nest, Socket.IO
Хочешь участвовать в подборке? Пиши!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4⚡3🔥2🙏1 1
🎓Полный гайд по List Comprehensions в Python
В Python существует множество способов решить одну и ту же задачу, но не все они одинаково «питоничные». Классический подход к созданию списков через цикл
Именно для таких случаев и существуют списковые включения (List Comprehensions) — инструмент для создания списков в одну строку, декларативно и эффективно.
Эта статья поможет досконально разобраться в теме, от основ до неочевидных приемов. Внутри не только базовый синтаксис, но и продвинутые техники.
В общем, всё, что нужно, чтобы писать более чистый, выразительный и зачастую более быстрый код.
В Python существует множество способов решить одну и ту же задачу, но не все они одинаково «питоничные». Классический подход к созданию списков через цикл
for
и метод .append()
— яркий тому пример. Он работает, но часто бывает многословным и менее читаемым.Именно для таких случаев и существуют списковые включения (List Comprehensions) — инструмент для создания списков в одну строку, декларативно и эффективно.
Эта статья поможет досконально разобраться в теме, от основ до неочевидных приемов. Внутри не только базовый синтаксис, но и продвинутые техники.
В общем, всё, что нужно, чтобы писать более чистый, выразительный и зачастую более быстрый код.
This media is not supported in your browser
VIEW IN TELEGRAM
Anthropic выкатили интересный апдейт для Claude Code: теперь можно переключить режим вывода кода командой
1️⃣
2️⃣
Чтобы не брейнротить от копипасты любых ответов и для обучение — любопытный инструмент.
/output-styles
на режимы:1️⃣
Explanatory
: Claude не просто пишет код, а комментирует каждое свое решение. Почему выбрал именно такую архитектуру, какие были альтернативы, какие плюсы и минусы у подхода. По сути, это эмуляция опытного программиста, который сидит рядом и вслух проговаривает свой мыслительный процесс.2️⃣
Learning
: ИИ пишет код, а потом в ключевых местах останавливается, вставляет #TODO
и говорит: "а вот этот кусок допиши-ка сам". Как бы парное программирование с ментором, который заставляет тебя думать, а не тупо копипастить.Чтобы не брейнротить от копипасты любых ответов и для обучение — любопытный инструмент.
👍3🔥2⚡1🤔1🙏1