CodeLab
145 subscribers
538 photos
20 videos
159 links
Говорим просто о сложном

Обсуждение, новости, материал и сплетни — все здесь https://t.me/CodeLabMLChat
Download Telegram
#2 Подается число 2145680, какой будет ответ?

n = int(input())

total = 0
while n > 0:
digit = n % 10
if digit % 2 == 0:
total += digit
n //= 10

print(total)
👍1
#2 Какой будет ответ?
Anonymous Quiz
0%
12
43%
20
14%
10
14%
8
29%
6
0%
14
0%
24
👍1🤯1
Пока что всего по 33 процента) Давайте добьем что-ли.
👍1👀1
🧑‍💻 Гайс, сори, что выкладываю поздно, доделывал все свои делишки и теперь могу написать пост. Вы выбрали машинное обучение, пусть оно и будет 🔗

https://t.me/pywithCodeLab/484ссылка на пост про машинное обучение, можете прочитать предыдущие посты, там немного и очень понятно)

🟰 Как вы знаете, мы только начали изучать, поэтому, как для вас, так и для меня, это будет что-то новенькое... А мы продолжим разбираться с моделями 🟰

Мы остановились на модели 6

Как мы могли бы ее улучшить ⁉️

⚙️ Подразумевается, что при сложении порядкового номера дня недели с весом сообщения, мы определяем электронное письмо в SKAM или в норм сообщения (Типо понедельник у нас 0, вторник — 1 и тд. А если во вторник нам пришлют сообщение весом 12 кб, то письмо будет определено как SKAM. Еще момент, допустим, берем субботу (под номером 5), по выходным у нас будет край 5 - 7 кб разрешенный размер. Так что, если в субботу нам пришлют сообщение размером 7 кб — SKAM). Откуда мы берем все эти цифры? Ответ — из головы и книги, мы, по сути, просто улучшаем нашу модель.

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

0️⃣ Если в нашем электронном сообщении будет сообщение 'купи' или 'продай' или 'приобретай', то скорее всего, это ненужная нам реклама.

1️⃣ Если отправителя нет в наших контактах — письмо также может быть ненужным

2️⃣ Если оно содержит вложения с большим размером и т.д


Гайс, это не какие-то обязательные правила, а всего лишь пример. Мы бесконечно много можем улучшать ее.
🧑‍💻 Признаки, метки, прогнозы, Размеченные и неразмеченные данные — об этом всем пойдет сейчас речь..

⭕️ Перед вами экселевская таблица, допустим, с домами. Очень много домов. А нам нужно же как-то эти хаты отличать друг от друга 👀. На это и нужны признаки. Только вот в случае с таблицей, признаками будут являться столбцы таблицы, каждый столбец содержит определённую характеристику (признак), которая описывает объект или событие. Если у нас таблица с данными о недвижке, то столбцы такие как площадь, количество комнат, расположение, и год постройки, будут являться признаками.


Всем сладких гайс, завтра обо всем продолжим! 🥰
🥰1🤯1👨‍💻1👀1
🧑‍💻 Что такое метки? Щас разберемся!

0️⃣⚙️ Если вы хотите спрогнозировать тип домашнего животного (например, кошки или собаки) на основе наших данных о нем, то метка — это тип домашнего животного (кошка/собака). Давайте вернемся к недвижке. Меткой в случае цен на жилье, будет служить его фактическая цена. По сути, метка обозначает результат, который модель должна предсказать.

1️⃣🔗 Прогноз — предположение, которое делает модель. Модель может предсказать, что определённая хата будет стоить $200,000 или что на фото изображен кот, это и будет называться прогнозом.

2️⃣⭕️ Теперь, зная про метки, поговорим про два основных типа данных: размеченные и неразмеченные.

Размеченные данные — это набор данных, в котором каждому объекту или экземпляру данных присвоена метка (метка может быть как типом‚ так и числом).

‼️ Таблица, где каждый объект (например, изображение) имеет соответствующую метку (например, "кот" или "собака"). В такой таблице столбцы — это признаки, а метка — целевой столбец. Я обратился к GPT, таблицу я выложу после поста.
🤯1👨‍💻1👀1
🧑‍💻 Вот и таблица:

🟰 Столбцы — признаки, меткой является целевой столбец.

🟰 Эта таблица — пример Размеченных данных.
🤯1👨‍💻1👀1
‼️ Задание не с основного курса

🧑‍💻 Так, гайс, вчера было Машинное обучение, ща давайте попишем код
:

⭕️ Это не с нашего основного курса, периодически я буду находить новые задачки. Давайте подумаем, что-ли 🧠

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

🟰 В общем, подается у нас число, ввели мы 4, к примеру).
А вот даальше будет выводится 4 числа для ввода, они и будут складываться. Ща вкратце объясню суть еще раз:

‼️ Ввели 4 → следовательно вводим 4 числа → считаем сумму этих чиселответ

🔗 Код:


n = int(input())
cnt = 0 # Создаем счетчик
for i in range(n):
cnt += int(input()) #Прибавляем на каждой итерации цикла целое число.

print(cnt)
👍1🤯1👨‍💻1👀11
🔗 Сумма чисел 7.3

Забавно, но зашел на наш основной курс и попалось такое же задание 🧑‍💻


🔗 Код

total = 0
for _ in range(int(input())):
total += int(input())
print(total)
🥰2👨‍💻1
🧑‍💻 Асимптотическое приближение 7.3

⚙️ Тут мне пришлось думать, когда я впервые на нее наткнулся.

✔️ В чем суть? Мы должны вывести вот это вот выражение. Давайте пробовать писать:

Сначала, конечно 🟰from math import log🟰

🔗 Дальше все, как обычно: создаем счетчик, который послужит этим выражением в скобках.

n = int(input()) 
sum = 0


⭕️ Создаем цикл for:

for i in range(1, n + 1):


Теперь должны прибавить к счетчику 1/i.

‼️ ( На первой итерации i = 1, следовательно 1/1 = 1, на второй итерации, i = 2 → 1/2, на третьей i = 3 → 1/3... ну вы поняли ) — Все что мы написали (сам цикл и результат счетчика), это как бы наша скобка из задания.

🔗 Теперь последний момент, мы должны вычесть из скобки (нашего выражения) натуральный логарифм, который мы заблаговременно импортировали.

from math import log

n = int(input())
sum = 0

for i in range(1, n + 1):
sum += 1 / i

print(sum - log(n))
👍2
Завтра разберем мб еще одно решение этого задания, всем сладких 😋
👍2
Кто это у нас такой? 👀
👀2🤯1👨‍💻1
CodeLab
🧑‍💻 Что такое метки? Щас разберемся! 0️⃣⚙️ Если вы хотите спрогнозировать тип домашнего животного (например, кошки или собаки) на основе наших данных о нем, то метка — это тип домашнего животного (кошка/собака). Давайте вернемся к недвижке. Меткой в случае…
👨🏼‍💻 Так, мы остановились на размеченных данных, ща поговорим про неразмеченные.
⚙️ Уже по логике можно догадаться, что это задания без метки.
Придумывать ничего не надо, держите пример из книги.
👍1👨‍💻1
🔗 Очень важно, размеченные и неразмеченные данные дальше дают нам такие понятия как контролируемое обучение и неконтролируемое.

Контролируемое обучение — это тип машинного обучения, при котором используются размеченные данные.

Помните метки ⁉️ Да - да, это те самые, которые являются по сути результатом (который модель должны предсказать). Давайте мб вспомним про них.

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

‼️ Итак, цель контролируемого обучения состоит в том, чтобы спрогнозировать метки для новых данных, основываясь на образцах, полученных во время обучения нашей с вами модели.

🧑‍💻 Давайте парочку примеров разберем:

0️⃣ Хотим мы обучить модель распознавать цифры от 0 до 9, написанные от руки, почему бы и нет?) Входными данными будут служить изображения этих самих цифр, наша моделька должна же понимать че да как. А вот метками будут сами цифры (как я и говорил, результаты, которые наша модель должна предсказать). Целью будет, понятное дело, модель, которая предсказывает цифры.

1️⃣ Цифр нам не хватило, го перейдем к недвижке. Наша модель должна должна предсказывать цену на жилье на основе наших данных (характеристики хаты, ее площадь, расположение (насколько близко к центру или к морю мб), возраст дома, количество комнат и тд). Метка (ожидаемый результат) — это цена дома. А на выходе, наша модель после обучения должна предсказывать метки для новых данных.

2️⃣ Зашли на почту, нам присылают странные письма, как проверить, SCAM или нет⁉️ Модель должна различать SCAM и нормальные письма.

🟰Мы уже в начале обсуждали такой пример🟰 — чекайте

Входные данные будут зависеть от того, насколько мы хотим заморочиться 🧑‍💻. Можем задать такие входные данные, как:

◽️размер письма,
◽️еще условие того, в какой день недели нам прислали сообщение (вполне возможно),
◽️наличие каких то слов-ключей (слова по типу: "купи", 'переходи' и тд).
👍1🤯1
Итааак, неконтролируемое обучение, че это ⁉️

Если в контролируемом обучении модель работает с размеченными данными. то, логично, что в неконтролируемом обучении — с неразмеченными.

⭕️ Мы также подаем данные, различие лишь в том, что у этих данных нет никаких меток для прогнозирования, но при этом всем, модель должна найти закономерность в этих данных, научиться различать и отличать.

👨‍💻 Это если бы подавали данные в виде кучи изображений кошек и собак:

▫️Если в контролируемом обучении, мы подали бы размеченные данные, модель с кайфом поняла бы, собака это или кошка. Наша модель изучит по косарю изображений животных (изучит их отличительные признаки, шерсть, размер, лапы, и тд) и затем, когда мы подадим новое изображение животного и спросим: Что это за животное чел? Модель естественно предскажет, собака это или кошка.

Воот, надеюсь вы поняли че там с контролируемым обучением, теперь та же ситуация, но с неконтролируемым...

▫️Если в неконтролируемом обучении мы подали бы изображения наших зверей без меток, модель вообще не понимала бы, где там кошки, а где собаки. Затем модель начинает проводить анализ, находить группы кластеров (алгоритмы кластеризции) — я об этом напишу в следующем посте... Кароч, модель начинает находить похожие закономерности, опираясь только характеристики входных изображений. По итогу, модель разделит кошек и собак, но при этом не будет понимать кто это. Но зато поймет куда относить новое изображение, когда мы подадим на вход очередную собачку.
👍1👨‍💻1👀1
🐍 Разбор кода (Python)

Сразу скажу, код будет несложный, просто я начну с рассуждений, а вы можете сидеть и параллельно моим рассуждениям писать код. Можете в комменты кидать свои варианты👇🏻

🧑‍💻 Допустим, вам сказали написать такой код; При вводе чисел через пробел, создается список, в который будут записываться только четные числа, и уже потом код должен вывести эти числа и посчитать их сумму. Го пробовать:

0️⃣ Итак, первое че делаем — это пишем функцию для считывания строки:

🟰 numbers = input("Вводим числа через пробел: ").split()🟰

Зач нам split()? Вопрос хороший, как вы помните (а мы разбирали метод split(), чекайте навигацию), метод разделяет метод по разделителю и возвращает список, ввели мы 1 2 3 4 5, значит будет ['1', '2' ... и тд

1️⃣‼️🟰 numbers = [int(num) for num in numbers]🟰это генератор списка, и да, мы не разбирали это все, но будем потихоньку вливаться. Сама суть этой строчки в преобразовании строки в целое число. То есть, метод split() разделил строку на части по пробелам, а генератор списка преобразовывает эти самые части в целые числа.‼️

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

2️⃣ Создаем новый список 🟰even_numbers = []🟰 (список для четных чисел)

3️⃣ ❗️На этапе 1 генератор списка вернул нам новый список с числами, нам теперь нужно найти из них четные, поэтому перебираем...

for num in numbers:
if num % 2 == 0: # Проверка на четность
even_numbers.append(num) # Добавляем в список для четных чисел, непосредственно, четные числа)


⭕️ Выводим четные числа:

print("Чётные числа:", even_numbers)


4️⃣ Теперь подсчитаем сумму четных чисел, создаем счетчик:

🟰sum_even = 0🟰 (Сумма четных чисел)

🔗 И теперь проходим по списку 🟰even_numbers🟰 и вычисляем сумму всех элементов этого списка:

sum_even = 0
for even in even_numbers:
sum_even += even #Подсчет суммы


5️⃣ Выводим сумму:

 print("Сумма чётных чисел:", sum_even)


🧑‍💻 Мы просто красавчики, теперь получаем такой вот код:

numbers = input("Вводим числа через пробел: ").split()
numbers = [int(num) for num in numbers]
even_numbers = []

for num in numbers:
if num % 2 == 0:
even_numbers.append(num)

print("Чётные числа:", even_numbers)

sum_even = 0
for even in even_numbers:
sum_even += even

print("Сумма чётных чисел:", sum_even)
👍2🥰1👨‍💻1👀1
👨🏼‍💻 Добрый ночи гайс)
Надеюсь вы с большим кайфом проводите свои выходные) Сам решил отдохнуть, поэтому пост ток щас выкладываю.


⭕️ Я вчера выложил пост про неконтролируемое обучение и упомянул кластеры ( алгоритмы кластеризации ).

⚙️ Вы уже должны знать, что в неконтролируемом обучении модель работает с неразмеченными данными ( нет никаких меток ). К чему это я, наша модель должна же как-то извлечь информацию из нашего набора данных, об этом и поговорим…

💡Дак вот, алгоритмы кластеризации — это такие алгоритмы, которые разбивают набор данных на группы, а эти самые группы называются кластерами ( разбиваются данные на кластеры по какому-то сходству ), по сути, так модель и извлекает инфу из входных данных без меток га основе их сходства ( один из способов )

💤 Завтра напишу об этом подробнее, как никак, надо себе давать отдохнуть)
👍1👎1🥰1🤓1