🔗 Навигация по C
🧑💻 Введение
🟰 Ввод с клавиатуры и вывод на экран 🟰(Разбор кода)
🟰 Поиск элемента в массиве 🟰(Разбор кода)
🟰 Изменение одних букв на другие в строке 🟰 (Разбор кода)
__________________________________
🟰Н А В И Г А Ц И Я🟰
🧑💻 Введение
🟰 Ввод с клавиатуры и вывод на экран 🟰(Разбор кода)
🟰 Поиск элемента в массиве 🟰(Разбор кода)
🟰 Изменение одних букв на другие в строке 🟰 (Разбор кода)
__________________________________
🟰Н А В И Г А Ц И Я🟰
🔗 Навигация по Машинному обучению
🧑💻 Введение
0️⃣ Простейшие понятия
1️⃣ И еще важные понятия (их будет много)
2️⃣ Пример 1 (Модель 1)
3️⃣ Пример 2 (Модель 2)
4️⃣ Модель 3 (Обязательно к прочтению)
5️⃣ Модель 4 и 5 (Вероятные изменения)
6️⃣ Модель 6 (Вероятные изменения)
7️⃣ Модель 7 (Как бы могла выглядеть наша модель)
🟰ДОП НАВИГАЦИЯ ПО МОДЕЛЯМ🟰
🔗 Признаки моделей
🔗 Прогнозы и метки (Размеченные данные)
🔗 Неразмеченные данные
🔗 Контролируемое обучение и примеры
🔗 Неконтролируемое обучение
🔗 Алгоритмы кластеризации
🔗 Кластеры и кластеризация
🔗 Где нужна кластеризация ? (примеры)
🔗 Понижение размерности
🔗 Матричная факторизация и разложение по сингулярным значениям (Введение в тему)
🔗 Вспоминаем кластеризацию и алгоритм K-средних
🔗 Вспоминаем понижение размерности
🔗 Продолжаем матричную факторизацию
🔗 Алгоритм матричной факторизации SVD (Разложение по сингулярным значениям)
__________________________________
🟰Н А В И Г А Ц И Я🟰
‼️ ПРОДОЛЖЕНИЕ НАВИГАЦИИ ( МАШИННОЕ ОБУЧЕНИЕ 2 )
🧑💻 Введение
0️⃣ Простейшие понятия
1️⃣ И еще важные понятия (их будет много)
2️⃣ Пример 1 (Модель 1)
3️⃣ Пример 2 (Модель 2)
4️⃣ Модель 3 (Обязательно к прочтению)
5️⃣ Модель 4 и 5 (Вероятные изменения)
6️⃣ Модель 6 (Вероятные изменения)
7️⃣ Модель 7 (Как бы могла выглядеть наша модель)
🟰ДОП НАВИГАЦИЯ ПО МОДЕЛЯМ🟰
🔗 Признаки моделей
🔗 Прогнозы и метки (Размеченные данные)
🔗 Неразмеченные данные
🔗 Контролируемое обучение и примеры
🔗 Неконтролируемое обучение
🔗 Алгоритмы кластеризации
🔗 Кластеры и кластеризация
🔗 Где нужна кластеризация ? (примеры)
🔗 Понижение размерности
🔗 Матричная факторизация и разложение по сингулярным значениям (Введение в тему)
🔗 Вспоминаем кластеризацию и алгоритм K-средних
🔗 Вспоминаем понижение размерности
🔗 Продолжаем матричную факторизацию
🔗 Алгоритм матричной факторизации SVD (Разложение по сингулярным значениям)
__________________________________
🟰Н А В И Г А Ц И Я🟰
‼️ ПРОДОЛЖЕНИЕ НАВИГАЦИИ ( МАШИННОЕ ОБУЧЕНИЕ 2 )
Итак, продолжаем машинку:
0️⃣ Начнем с того, что, когда мы хотим принять какое либо решение, которое основывается на нашем с вами опыте, мы задействуем такую концепцию, как
🔗 Вспоминание → Формулирование → Прогнозирование.
⭕️ Берем пример из книги: вспоминаем, что всю неделю шел дождь и прогнозируем о том, что сегодня он тоже скорее всего пойдет.
🟰МОДЕЛЬ — набор правил, которые представляют наши данные и могут быть задействованы для прогнозирования. (Именно модель обучается на данных для выполнения наших с вами задач).
🟰А вот АЛГОРИТМ — это набор шагов, которые мы используем, чтобы построить модель.
0️⃣ Начнем с того, что, когда мы хотим принять какое либо решение, которое основывается на нашем с вами опыте, мы задействуем такую концепцию, как
🔗 Вспоминание → Формулирование → Прогнозирование.
⭕️ Берем пример из книги: вспоминаем, что всю неделю шел дождь и прогнозируем о том, что сегодня он тоже скорее всего пойдет.
🟰МОДЕЛЬ — набор правил, которые представляют наши данные и могут быть задействованы для прогнозирования. (Именно модель обучается на данных для выполнения наших с вами задач).
🟰А вот АЛГОРИТМ — это набор шагов, которые мы используем, чтобы построить модель.
👀1
1️⃣🔗 Берем снова пример из книги:
⭕️1. На почту нашего главного героя присылают, скажем, 10 сообщений в неделю (Это мы вспомнили), при этом, из 10 присланных на почту сообщений— 6 из них SCAM.
2. Теперь, формулируем модель (2 этап после вспоминания). Надо еще учитывать тот момент, что оно может оказаться неверным (наше формулирование это), но, это лучшее что мы можем придумать.
3. Дальше прогнозирование (3 этап), является ли это электронное письмо спамом. Учитывая, что 6 из 10 — спам, новое электронное письмо будет спамом с вероятностью 60 % и с вероятностью 40 % — нет. По сути, с большей вероятностью новое письмо окажется спамом, поэтому ликвидируем его
⭕️ (Новое письмо — спам)
Возмоожно, мы были неверны в наших прогнозах, но мы сделали прогноз на основе наших данных.
🧑💻 Грокаем дальше —>
⭕️1. На почту нашего главного героя присылают, скажем, 10 сообщений в неделю (Это мы вспомнили), при этом, из 10 присланных на почту сообщений— 6 из них SCAM.
2. Теперь, формулируем модель (2 этап после вспоминания). Надо еще учитывать тот момент, что оно может оказаться неверным (наше формулирование это), но, это лучшее что мы можем придумать.
3. Дальше прогнозирование (3 этап), является ли это электронное письмо спамом. Учитывая, что 6 из 10 — спам, новое электронное письмо будет спамом с вероятностью 60 % и с вероятностью 40 % — нет. По сути, с большей вероятностью новое письмо окажется спамом, поэтому ликвидируем его
⭕️ (Новое письмо — спам)
Возмоожно, мы были неверны в наших прогнозах, но мы сделали прогноз на основе наших данных.
🧑💻 Грокаем дальше —>
🤡1👀1
2️⃣🖇 Модель 2 (Грокнем ее)
Теперь книга нам предлагает капнуть глубже...
z понедельник — полезное;
z вторник — полезное;
z суббота — спам;
z воскресенье — спам;
z воскресенье — спам;
z среда — полезное;
z пятница — полезное;
z суббота — спам;
z вторник — полезное;
z четверг — полезное.
ХАХААХАХХА не знаю почему скопировалось Z, но пусть будет )
👨💻 Давайте посерьезнее, итак, у нас теперь инфы побольше! Теперь мы знаем, что по будням нам присылают рабочую почту, а по выходным — 🔞.
🔗 Перейдем к модели, и допустим, сегодня вторник. а это значит, что, с большей вероятностью — это полезное письмо.
Теперь книга нам предлагает капнуть глубже...
z понедельник — полезное;
z вторник — полезное;
z суббота — спам;
z воскресенье — спам;
z воскресенье — спам;
z среда — полезное;
z пятница — полезное;
z суббота — спам;
z вторник — полезное;
z четверг — полезное.
ХАХААХАХХА не знаю почему скопировалось Z, но пусть будет )
👨💻 Давайте посерьезнее, итак, у нас теперь инфы побольше! Теперь мы знаем, что по будням нам присылают рабочую почту, а по выходным — 🔞.
🔗 Перейдем к модели, и допустим, сегодня вторник. а это значит, что, с большей вероятностью — это полезное письмо.
🤡3
🔗3️⃣ Теперь усложняем, модель 3.
⭕️ Нас встречает наш кент и говорит, что мы не пришли не его день рождения (обидно). Как оказалось, эта плешь присылала всем приглашения в воскресенье! А у нас на воскресенье, как и на другие выходные стоит блок по сообщениям (По любому скамеры пишут) Для начала, возвращаемся к стадии вспоминания, когда нам присылали сообщения.
🔗 Дальше, книга предлагает такой вариант:
1 Кбайт — полезное;
2 Кбайт — полезное;
16 Кбайт — спам;
20 Кбайт — спам;
18 Кбайт — спам;
3 Кбайт — полезное;
5 Кбайт — полезное;
25 Кбайт — спам;
1 Кбайт — полезное;
3 Кбайт — полезное
⭕️ Похоже, большие письма являются спамом, потому что содержат большие вложения, мелкие письма — зачастую полезные.
⭕️ Формулируем следующее: если письмо больше 10 кб — спам, меньше — что-то полезное от кореша.
🧑💻 Теперь сам прогноз: если кент прислал письмо на почту, вес у него, килобайт 15, значит, скорее всего, письмо — спам.
‼️ В нашем примере, день недели и размер письма были признаками (Запоминаем че это) ↓
‼️ПРИЗНАК — любое свойство или характеристика данных, которые модель может применять для прогнозирования
⭕️ Нас встречает наш кент и говорит, что мы не пришли не его день рождения (обидно). Как оказалось, эта плешь присылала всем приглашения в воскресенье! А у нас на воскресенье, как и на другие выходные стоит блок по сообщениям (По любому скамеры пишут) Для начала, возвращаемся к стадии вспоминания, когда нам присылали сообщения.
🔗 Дальше, книга предлагает такой вариант:
1 Кбайт — полезное;
2 Кбайт — полезное;
16 Кбайт — спам;
20 Кбайт — спам;
18 Кбайт — спам;
3 Кбайт — полезное;
5 Кбайт — полезное;
25 Кбайт — спам;
1 Кбайт — полезное;
3 Кбайт — полезное
⭕️ Похоже, большие письма являются спамом, потому что содержат большие вложения, мелкие письма — зачастую полезные.
⭕️ Формулируем следующее: если письмо больше 10 кб — спам, меньше — что-то полезное от кореша.
🧑💻 Теперь сам прогноз: если кент прислал письмо на почту, вес у него, килобайт 15, значит, скорее всего, письмо — спам.
‼️ В нашем примере, день недели и размер письма были признаками (Запоминаем че это) ↓
‼️ПРИЗНАК — любое свойство или характеристика данных, которые модель может применять для прогнозирования
🤡1
🧑💻 Два классификатора, которые у нас получились, хороши по-своему, но есть недостатки...
❗️ Модель 4 предполагала бы, что письмо, отправленное в выходные и имеющее вес больше 10 Кбайт — SCAM, в противном случае — полезное.
❗️ Модель 5 предполагала бы, что, если письмо, отправлено в течение недели — должно быть не больше 15 Кбайт, чтобы не попасть в категорию спама. Если письмо отправлено на выходных, то оно должно быть больше 5 Кбайт, чтобы попасть в категорию спама. В противном случае — письмо вайб + кайф
❗️ Модель 4 предполагала бы, что письмо, отправленное в выходные и имеющее вес больше 10 Кбайт — SCAM, в противном случае — полезное.
❗️ Модель 5 предполагала бы, что, если письмо, отправлено в течение недели — должно быть не больше 15 Кбайт, чтобы не попасть в категорию спама. Если письмо отправлено на выходных, то оно должно быть больше 5 Кбайт, чтобы попасть в категорию спама. В противном случае — письмо вайб + кайф
🤡1
🔗 Последовательность чисел 1 (7.2)
Ща одну задачку быстренько разберем и я спать. На минуточку, уже раздел 7.2!
⭕️ Все как обычно, два int(input) и пишем цикл for.
⭕️ Подается два числа:
Первое число — переменная для 'начала', вторая — для 'конца', но обязательно, второй аргумент должен быть включительным, поэтому +1
Ща одну задачку быстренько разберем и я спать. На минуточку, уже раздел 7.2!
⭕️ Все как обычно, два int(input) и пишем цикл for.
⭕️ Подается два числа:
Первое число — переменная для 'начала', вторая — для 'конца', но обязательно, второй аргумент должен быть включительным, поэтому +1
m, n = int(input()), int(input())
for i in range(m, n + 1):
print(i)
👍1
Последовательность чисел 3🌶
Ща разберем задачку на ночь и надо спать ложиться 👀
0️⃣🧑💻 Вводим привычную уже херню и думаем че дальше...
1️⃣ У нас в условии сказано, что m > n, это мы и пишем в первое условие:
2️⃣⭕️ Теперь можно и цикл прописать. (напоминаю, там три аргумент — start, stop, step ).
‼️ Нам нужно вывести такую последовательность, чтобы были только нечетные числа + числа должны идти от большего к меньшему.
🌶 И получается такой вот код:
Ща разберем задачку на ночь и надо спать ложиться 👀
0️⃣🧑💻 Вводим привычную уже херню и думаем че дальше...
m = int(input())
n = int(input())
1️⃣ У нас в условии сказано, что m > n, это мы и пишем в первое условие:
if m > n:
2️⃣⭕️ Теперь можно и цикл прописать. (напоминаю, там три аргумент — start, stop, step ).
‼️ Нам нужно вывести такую последовательность, чтобы были только нечетные числа + числа должны идти от большего к меньшему.
🌶 И получается такой вот код:
m = int(input())
n = int(input())
if m > n:
for i in range(m, n - 1, -1):
if i % 2 != 0:
print(i)
👍1
🧑💻 Ща еще разберем некоторые решения, как раз нам нужно без условного оператора что-то найти 👁🗨
Вот такой код я украл у разрабов курса, че тут происходит ⁉️
0️⃣ Допустим, подается 6 и -1, это мы запоминаем 🧑💻
1️⃣ 🔗 Теперь, переменная start, и если мы подставим 6, то получается: ‼️ start = ((6-1) // 2) * 2 + 1 (Короче, если мы подадим четное число, эта формула сделает его нечетным, а если введем нечетное — то ничего 👀)
2️⃣⚙️ Ну и прописываем цикл for, а аргументом для старта делаем переменную start
UPD: Выводом будет: 5 3 1 -1
m, n = int(input()), int(input())
start = ((m - 1) // 2) * 2 + 1
for i in range(start, n - 1, -2):
print(i)
Вот такой код я украл у разрабов курса, че тут происходит ⁉️
0️⃣ Допустим, подается 6 и -1, это мы запоминаем 🧑💻
1️⃣ 🔗 Теперь, переменная start, и если мы подставим 6, то получается: ‼️ start = ((6-1) // 2) * 2 + 1 (Короче, если мы подадим четное число, эта формула сделает его нечетным, а если введем нечетное — то ничего 👀)
2️⃣⚙️ Ну и прописываем цикл for, а аргументом для старта делаем переменную start
UPD: Выводом будет: 5 3 1 -1
Еще одно решение с комментов, своего я придумать ничего не могу...
🧑💻 Подается снова 6 и - 1, цикл будет перебирать от 6 до -1 (не включительно) с шагом -2. ‼️ Важно понимать, на данном этапе нам код выведет: 6 4 2 0, можете сами попробовать:
🖇 Пока вроде все ясно, но зач нам четные числа, когда нам нужны нечетные??? Именно поэтому выводим в функции print следующее:
Берем снова шестерку, вычитаем 1 и прибавляем результат деления по модулю 6 от 2, (Это вот так ес че 6 % 2), получается 5, то что нам и нужно! На первой итерации i = 6, а выводит 5 (Уже объяснил почему), на второй итерации i = 4 ( Потому что у нас шаг -2 ), а вывод будет 3 и так далее до -1...
🔗 Код:
🧑💻 Подается снова 6 и - 1, цикл будет перебирать от 6 до -1 (не включительно) с шагом -2. ‼️ Важно понимать, на данном этапе нам код выведет: 6 4 2 0, можете сами попробовать:
m, n = int(input()), int(input())
for i in range(m, n, -2):
print(i)
🖇 Пока вроде все ясно, но зач нам четные числа, когда нам нужны нечетные??? Именно поэтому выводим в функции print следующее:
print(i - 1 + i % 2)
Берем снова шестерку, вычитаем 1 и прибавляем результат деления по модулю 6 от 2, (Это вот так ес че 6 % 2), получается 5, то что нам и нужно! На первой итерации i = 6, а выводит 5 (Уже объяснил почему), на второй итерации i = 4 ( Потому что у нас шаг -2 ), а вывод будет 3 и так далее до -1...
🔗 Код:
m, n = int(input()), int(input())
for i in range(m, n, -2):
print(i - 1 + i % 2)
🤡1
🧑💻 Так, Последовательность чисел 4 (7.2),
По сравнению с прошлыми заданиями, эта прям намного проще,⭕️ просто прописываем условный оператор if и учитываем 3 данных условия (хотя бы одному наш код должен удовлетворять)
Ну и, собственно, код:
🤷♂️ Даже и не знаю, какие комментарии можно дать, оператор or мы знаем, как писать условия тоже знаем, почему диапазон от m до n + 1 тоже знаем (если забыли вдруг, у нас индексация с 0, поэтому + 1)
По сравнению с прошлыми заданиями, эта прям намного проще,⭕️ просто прописываем условный оператор if и учитываем 3 данных условия (хотя бы одному наш код должен удовлетворять)
Ну и, собственно, код:
m = int(input())
n = int(input())
for i in range(m, n + 1):
if i % 17 == 0 or i % 10 == 9 or (i % 3 == 0 and i % 5 == 0):
print(i)
🤷♂️ Даже и не знаю, какие комментарии можно дать, оператор or мы знаем, как писать условия тоже знаем, почему диапазон от m до n + 1 тоже знаем (если забыли вдруг, у нас индексация с 0, поэтому + 1)
👀 Так, покатали яйца денек, можно и за работу
🧑💻 Начнем с тестов, уж больно давно их не было, чисто на разминку:
#1
🧑💻 Начнем с тестов, уж больно давно их не было, чисто на разминку:
#1
count = 0
for i in range(4):
for j in range(2):
count += 1
print(count)
👀2
👨💻2