Warning: Undefined array key 0 in /var/www/tgoop/function.php on line 65

Warning: Trying to access array offset on value of type null in /var/www/tgoop/function.php on line 65
94 - Telegram Web
Telegram Web
Который час, друзья? 🤔 С точностью до минуты не подскажем, но уверены — сейчас самое время готовиться ко второму потоку курса «Машинное обучение в биологии и биомедицине» от OpenBio! 🎉👩🏻‍🎓

Весенний набор стартует 25 февраля, а подача заявок на него уже открыта. Присоединяйтесь к единственной программе переквалификации с кейсами по Computer Vision в биомедицине и ML в NGS в одном курсе.

Итак, начинаем подготовку! 🤓

#openbio_pandas
👍2
Первичная обработка данных в pandas

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

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

1️⃣ Визуализация данных

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

▫️ Методы df.head() и df.tail() позволяют увидеть первые и последние строки датафрейма. Это помогает оценить структуру и содержимое данных.

import pandas as pd

# Пример данных
data = {
    'Название': ['Роза', 'Тюльпан', 'Лаванда', 'Гербера'],
    'Цвет': ['Красный', 'Желтый', 'Фиолетовый', 'Разноцветный'],
    'Высота': [50, 30, 40, 60]
}

df = pd.DataFrame(data)

print(df.head())  # По дефолту печатает первые 5 строк
print(df.head(2))  # При передаче числового аргумента печатает указанное количество строк


▫️ Метод df.shape() возвращает количество строк и столбцов в датафрейме. Это полезно для быстрой оценки объема данных.

print(df.shape)  # Вывод: (4, 3)


▫️ Метод df.describe() предоставляет сводную статистику для числовых столбцов, включая среднее, стандартное отклонение и квартили. Это позволяет быстро оценить распределение значений.

print(df.describe())


2️⃣ Работа с пропущенными значениями

Отсутствующие данные могут серьезно исказить результаты анализа и привести к неправильным выводам. Проблему можно решить разными способами:

▫️ Метод df.dropna() позволяет удалить из таблицы все строки с пропущенными значениями. Стоит учитывать, что удаление может привести к потере важной информации.

▫️ С помощью метода df.replace() можно заменить пропущенные числовые значения на среднее по столбцу. Это позволяет сохранить данные и избежать искажений, хотя и вносит некоторую степень "додумывания" информации.

# Заменяем пропущенные значения на среднее по столбцу
mean_height = df['Высота'].mean()
df['Высота'].replace(to_replace=None, value=mean_height, inplace=True)


3️⃣ Замена типов данных

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

▫️ Это также можно сделать с помощью метода df.replace(). Для этого передадим методу словарь, где ключами будут исходные категории, а значениями - числа:

# Замена цветовых категорий на числовые значения
color_mapping = {'Красный': 1, 'Желтый': 2, 'Фиолетовый': 3, 'Разноцветный': 4}
df['Цвет'] = df['Цвет'].replace(color_mapping)


▫️ Альтернатива - метод df.get_dummies(), который преобразует категориальные данные в числовые. Его ключевое отличие в том, что он позволяет получить только бинарную числовую классификацию - 0 или 1. Для работы в аргументах метода нужно указать нужный датафрейм и его столбцы, в которых необходимо преобразование.

df_dummies = pd.get_dummies(df, columns=['Цвет'])
print(df_dummies)


4️⃣ Удаление дубликатов

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

▫️ С этим поможет метод df.drop_duplicates(), который удаляет дубликаты из датафрейма.

# Удаляем дубликаты
df = df.drop_duplicates()
print(df)


5️⃣ Фильтрация данных

Фильтрация позволяет выделить подмножество датафрейма по определенным критериям для дальнейшей работы. Отфильтрованный датафрейм можно сохранить в новой переменной.

filtered_df = df[df['Высота'] > 40]
print(filtered_df)


Мы рассмотрели основные методы первичной обработки данных в pandas. Эти инструменты помогут вам эффективно готовить данные для дальнейшего анализа и построения моделей 👨‍💻💪

#openbio_pandas
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3👍1🤓1
🎉Наша регулярная рубрика: подборка актуальных вакансий для биологов и медиков с компетенциями в области ML.
Отправляйте резюме, пока эти позиции не ушли в архив!

🦠Биоинформатик
Ключевые задачи, которые вас ждут на этой позиции:
- Анализ молекулярных данных раковых опухолей и их моделей;
- Создание систем классификации и диагностики опухолей через молекулярные профили с использованием ML;
- Выявление соматических изменений в опухолях/моделях опухолей и определение их свойств;
- Решение задач по моделированию структуры белков, передачи сигналов в органах и между клетками.
Во всех направлениях подразумевается также участие в научных публикациях.

💻Computer Vision Engineer (обработка и анализ медицинских данных)
Для быстрой апробации гипотез по анализу медицинских исследований, в том числе снимков, компании нужен сильный разработчик в области машинного зрения и, возможно, в области генеративных методов.

🧪TNLP researcher в команду фармакологии (Sber AI Lab)
Ищут талантливого и мотивированного специалиста для исследования и разработки новых инструментов и методов для дизайна белковых молекул, а также исследование подходов для генерации малых химических молекул.

👨‍💻Middle Data Scientist
Ждут опытного и увлеченного специалиста, которому предстоит:
- Развивать классические ML модели, которые помогут в планировании, оптимизации распределения ресурсов и т.д.;
- Создавать и внедрять модели ComputerVision, применяя их для классификации, детекции и сегментации;
- Совершенствовать и разрабатывать AI-ассистентов для клиентов и сотрудников;
- Разрабатывать процессы, которые помогут выявлять недобросовестное использование систем;
- Погружаться в исследовательские проекты;
- Создавать парсеры для сбора данных из внешних источников;
- Посещать конференции и/или участвовать в соревнованиях.

#openbio_вакансии
😍3👍2
Утверждаем: курс «Машинное обучение в биологии и биомедицине» от OpenBio — лучшее предложение на рынке для профильных специалистов.

Команда проекта более 4 лет создает образовательные курсы в сфере биотеха, знает, что сейчас актуально на рынке в сфере ML, и привлекла в качестве методистов курса одних из лучших специалистов в своем деле.

Наши спикеры уже на момент «сейчас» создали успешную карьеру (и продолжают ее развивать), годами преподают тематические дисциплины. Такой сплав профильных знаний и преподавательского опыта позволяет успешно реализовать главную задачу курса — передать навыки обработки биомед данных современными методами машинного обучения тем, кто только начинает свой путь в ML.

За 3,5 месяца с учебной нагрузкой по 8-10 часов в неделю вы овладеете полной базой для входа в сферу DataScience, что будет подтверждено официальным удостоверением о повышение квалификации государственного образца.

🗓 Старт весеннего потока — 25 февраля, а набор на него уже открыт.

✍️ Оставляйте заявку на бесплатную консультацию и фиксируйте за собой место на курсе по актуальной на данный момент цене. Ведь уже завтра, 2 декабря, цены вырастут ;)

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

Начните свой путь в ML в биологии и биоинформатике вместе с командой профессионалов!

#openbio_ML
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥1
Начнем эту неделю с хороших новостей: мы возобновляем цикл онлайн-встреч из серии «Личный путь в сеньора биоинформатика» разговором с Александром Сарачаковым! 🤩

Александр уже был гостем одного из эпизодов цикла, но вместить в один разговор более 9 лет опыта в сфере ML невозможно, и мы договорились с Александром на еще один вебинар.

🗓 Встреча состоится 10 декабря в 19:00 по Мск.

Александр — ex-квант в хедж-фонде, в настоящее время Team Leader команды Imaging & Deep learning в BostonGene, а также преподает в Сбер.Университете на курсах «Байесовские методы машинного обучения» и «Компьютерное зрение», а так же в МФТИ и Санкт-Петербургской школе компьютерных наук.

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

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

Стартуем 10 декабря, вторник, в 19:00 по Мск.

✍️ Пишите ваши вопросы в комментариях к этому посту, чтобы они точно были озвучены в эфире.

❗️Регистрируйтесь на сайте, чтобы получить ссылку на эфир.

#openbio_webinar
#openbio_interview
#openbio_expert
Please open Telegram to view this post
VIEW IN TELEGRAM
👍42😍2🤔1
Группировка и агрегация данных с помощью pandas 📊

Продолжаем знакомиться с функционалом pandas! В этот раз поговорим об еще одном важном инструменте — объединении данных в группы для раздельного анализа. Библиотека pandas предоставляет простой набор команд, который позволяет вычислить статистику для отдельных групп внутри датасета и создать сводные таблицы для отчетности и визуализации.

▫️ Как это делать?

Метод groupby() при применении к датафрейму pandas разделяет его на группы на основании определенного критерия. В простейшем случае данные можно группировать по значениям в отдельных столбцах таблицы — тогда критерием будет название нужного столбца.

Агрегация в pandas предоставляет различные функции, которые выполняют математические или логические операции над набором данных.
Самые частые из них:

sum() Сумма значений в столбце
min() Минимальное значение
max() Максимальное значение
mean() Среднее значение
count() Количество значений в столбце
std() Стандартное отклонение
var() Дисперсия значений
sem() Стандартная ошибка среднего

▫️ Примеры использования

Для иллюстрации возможностей группировки в pandas рассмотрим вымышленный датасет с данными о пациентах:

import pandas as pd

data = {
'Пациент': ['А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ж', 'З'],
'Возраст': [25, 30, 22, 35, 28, 40, 22, 30],
'Страховка': ['Есть', 'Нет', 'Нет', 'Есть', 'Нет', 'Есть', 'Есть', 'Нет'],
'Диагноз': ['Грипп', 'Грипп', 'ОРВИ', 'Грипп', 'ОРВИ', 'ОРВИ', 'Грипп', 'ОРВИ'],
'Стоимость лечения': [1000, 1200, 800, 1500, 900, 1100, 1300, 950]
}

df = pd.DataFrame(data)
df


Мы можем сгруппировать данные по одному из параметров, например, диагнозу, и подсчитать количество пациентов с каждым диагнозом:

grouped = df.groupby('Диагноз')['Пациент'].count()
print(grouped)


● В круглых скобках (в аргументе функции) записывается название столбца, на основании которого мы будем выделять группы.
● В квадратных скобках мы обозначили, с какими данными мы хотим работать после группировки. К ним будут применяться функции для агрегации.


Чтобы сгруппировать данные по нескольким параметрам, нужно передать их функции в виде списка - в квадратных скобках.

grouped = df.groupby(['Диагноз', 'Страховка'])['Пациент'].count()
print(grouped)


К числовым значениям можно применять математические функции, такие как суммирование, вычисление среднего и другие:

# Суммарные затраты на лечение для каждого диагноза
sum_grouped = df.groupby('Диагноз')['Стоимость лечения'].sum()
print(sum_grouped)

# Средний возраст пациентов с каждым диагнозом
age_grouped = df.groupby('Диагноз')['Возраст'].mean()
print(mean_age_grouped)


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

▫️ Где еще это пригодится?

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

import matplotlib.pyplot as plt

# 1. Группировка данных по диагнозу и подсчет суммы затрат на лечение
diagnosis_costs = df.groupby('Диагноз')['Стоимость лечения'].sum()

# 2. Построение пайчарта
plt.figure(figsize=(8, 6)) # Создаем рисунок размером 8х6
plt.pie(diagnosis_costs, # Создаем пайчарт
labels=diagnosis_costs.index, # Подписываем каждый сектор названием диагноза
autopct='%1.1f%%') # Добавляем на диаграмму процентные значения
plt.show()


🧑🏼‍💻 Попробуйте сами! Не стесняйтесь копировать код из постов и пробовать работать с ним — это точно поможет лучше разобраться в новых методах.

И неспроста мы коснулись темы графиков — в следующих постах нас ждет обсуждение библиотек для визуализации данных в Python!

Уверены, что это поможет вам укрепить техническую базу и подготовиться к курсу «Машинное обучение в биологии и биомедицине» от OpenBio 🎓👾


#openbio_pandas #openbio_visualization
👍2🔥2
Опубликован материал, созданный совместно с редакцией N+1 методистом нашего курса «Машинное обучение в биологии и биомедицине» Анной Новокрещеновой!

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

Приятного чтения!

#сми_о_нас
👍3🔥3😍2
Forwarded from N + 1
Модели на основе ИИ и машинного обучения еще не достигли идеальной точности, но уже могут соперничать с опытными врачами в диагностике по изображениям. Рассказываем, почему нельзя просто взять и научить ИИ находить опухоль со стопроцентной вероятностью

#ПартнерскийМатериал | #Медицина | #IT | *4.7
👍3🔥2
2025/07/12 17:13:27
Back to Top
HTML Embed Code: