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

Обсуждение, новости, материал и сплетни — все здесь https://t.me/CodeLabMLChat
Download Telegram
🔗 Пол и потолок (6.3)

В общем гайс, ниче сложного, подается лишь одно число x, а вычисляет значение по двум функциям:

⬜️ Функция floor() из модуля math в Python используется для округления чисел с плавающей точкой в меньшую сторону.

⬜️ Функция math.ceil() из модуля math в Python позволяет округлить число до ближайшего целого числа в большую сторону.

🔗 Теперь код:

from math import*
x = float(input())
ans = floor(x) + ceil(x)
print(ans) #Я иду спать, всем сладких
🪰
🌶🌶 Квадратное уравнение (6.3)

Думали, эти формулы вам не пригодятся?) Хуй бы не там, ща быстренько решим:

🔗 Я максимально расписывал код, но можно и намного короче:

from math import*
a = float(input())
b = float(input())
c = float(input())

D = pow(b, 2) - (4 * a * c)

if D > 0:
x1 = ((-b + sqrt(D))/(2 * a))
x2 = ((-b - sqrt(D))/(2 * a))
print(min(x1, x2))
print(max(x1, x2))
elif D == 0:
print(-b/(2 * a))
else:
print('Нет корней')



🔗🔗 Функция pow() возводит число в степень. Она принимает два параметра: какое число возводить и в какую степень возводить.
🔗А можно и вот так:

a=float(input())
b=float(input())
c=float(input())
d=b**2-4*a*c
if d < 0:
print("Нет корней")
🧑‍💻 Последнее задания данного раздела 'Правильный многоугольник (6.3)'

🔗Переписываем по формуле:

from math import*
n = float(input())
a = float(input())

S = (n * pow(a, 2)) / (4 * tan(pi/n))
print(S)
🔗 Дальше по курсу у нас 🟰циклы🟰

О том, что такое циклы и зачем они нужны, мы уже разговаривали, ссылочку вам прикрепил, почитаете !

Чисто вкратце, сама структура цикла for, с чего мы и начнем:

for название_переменной_цикла in range(количество_повторений):
блок кода
🔗 Python is awesome (7.1 )

💲 Код:

s = "Python is awesome!"
for i in range(10):
print(s)
🔗 Повторяй за мной 1 (7.1)

⭕️ Код:

s = input() #Для строки
rep= int(input()) #Количество повторений

for i in range(rep):
print(s)
⭕️ Последовательность символов (7.1)

🔗 Код:

for i in range(6):
print("AAA")

for i in range(5):
print("BBBB")

print("E")

for i in range(9):
print("TTTTT")

print("G")
⭐️ Звездный прямоугольник (7.1)

🔗 Код:

n = int(input())

for i in range(n):
print("*" * 19)
🧑‍💻 Повторяй за мной 2 (7.1)

🔗 Код:

n = input()

for i in range(10):
print(i, n)


⚪️ Переменная цикла — это величина, изменяющаяся на каждой итерации цикла.

Первый аргумент функции print() это переменная цикла 🟰 i 🟰, вторая — значение переменной, в нашем случае, любая введенная строка.
⚙️ Квадрат числа (7.1)

"Функция range возвращает последовательность чисел в заданном диапазоне." Дак вот, поскольку нам сказали, что диапазон заканчивается на число (включительно), поэтому прибавляем единицу:

for i in range(n + 1):


🔗 Код:

n = int(input())

for i in range(n + 1):
print(f'Квадрат числа {i} равен {i ** 2} '


f' строки (если забыли)
🔗Всем доброй ночи гайс, знаю, вы спите. Это скорее вводный пост про Машинное обучение. Если Python я понимал хоть немного, когда начинал этот канал, то вот эту ху⚙️ню я не понимаю от слова совсем..
🔗Далеко я уходить не стал, решил взять книгу из той же серии, что и 'Грокаем Алгоритмы' (посоветовали).

Все остальное я, естественно, не забрасываю, будет все также в полном объеме!
Начнем с простейших понятий и я пойду спать, уже завтра будем изучать дальше!

◽️ Здесь нам сразу говорят, что есть такая штука, как искусственный интеллект (это типа набор задач, в которых компьютер может
принимать решения.)


◽️ Машинное обучение, в свою очередь, является частью этой области (МО — это у нас — набор всех задач, в которых компьютер может принимать решения на основе данных).

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

◽️ И, наконец, глубокое изучения — это целая область исследований, которая относится к машинному обучению (Это и есть нейросетки).

Кароч, на днях запилю уже какой-нибудь крутой пост о машинке. Это, скорее, было мое вводное слово, всем спокойно ночи!
🧑‍💻 Вот так резко мы врываемся к языку C (можете не спрашивать причем тут вообще Си). Пока что запишем некоторый код, потом уже попробую сделать структура и навигацию ко всему этому.

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

При работе с массивами необходимо решать три задачи:
1️⃣ Выделять память нужного размера под массив.
2️⃣ Записывать данные в нужную ячейку.
3️⃣ Читать данные из ячейки.
‼️ Очень важно понимать вам одно ‼️Я пока что сам в нем ничего не знаю, не сказал бы что процесс вынужденный, но, мне самому придется это все понять, а вам это вполне может быть интересно. Ща разберем один код, уверяю, вы все поймете 🖤


#include <stdio.h>
const int N = 10; # Размер массива

int main() {
int A[N]; # Объявление массива

# Ввод массива с клавиатуры
printf("Введите массив A:\n"); #Вывод вод
for (int i = 0; i < N; ++i) { #Цикл по всем элементам
printf("Введите A[%d]: ", i); #Ввод A[i]
scanf("%d", &A[i]); #Ввод A[i]
}

#Умножение всех элементов на 2
for (int i = 0; i < N; ++i) { #Цикл по всем элементам
A[i] = A[i] * 2; #Умножить A[i] на 2
}

#Вывод массива на экран
printf("Результат:\n");
for (int i = 0; i < N; ++i) { #Цикл по всем элементам
printf("%d ", A[i]); #Вывод A[i]
}

return 0;
}


В целом, код достаточно читаем, но, я постараюсь объяснить и вам и себе его так, как я хотел бы, чтобы объясняли мне, начинаем)

0️⃣ Подключаем библиотеку stdio.h для использования таких функций, как, например, printf ( Вывод данных на экран ) и scanf ( Ввод данных с клавиатуры ). 👇🏿

#include <stdio.h>


1️⃣ В 🟰C🟰 нужно явно объявлять тип переменных ( К примеру: int A[N] объявляет массив целых чисел размером 10 ). В Python: переменные и типы данных динамические, и не нужно указывать их типы явно, вот вам явное отличие. const int N = 10;

⭕️ В Python список ( А еще массивы заменяются списками в нашем любимом питоне ) объявляется как A = [], и его можно динамически расширять с помощью метода .append() (Позже мы обязательно это рассмотрим подробнее).

Дак вот, возвращаемся к коду:

🟰 const int N = 10; устанавливает константу N, равную 10 ( Строчкой ниже мы зададим размер нашего массива этой переменной)
🟰 int A[N]; создается массив A размером 10.

Кстати, еще вы можете заметить Int main () ( Главная управляющая функция main () )

2️⃣:
for (int i = 0; i < N; ++i) { #Цикл по всем элементам
printf("Введите A[%d]: ", i); #Ввод A[i]
scanf("%d", &A[i]); #Ввод A[i]


Конструкцию for вы уже знаете (цикл ), давайте что-нибудь новенькое:

Итак, int i = 0 является начальной позицией, переменную i мы сразу же объявляем как целое число (int) и сразу же получает значение 0 (Потому что оно начальное).

int i = 0


⭕️ Это уже, своего рода, условие внутри нашей конструкции цикла (Пока i меньше значения N), цикл будет выполняться.)
i < N


🧑‍💻 "Инкремент — это операция, в результате которой значение переменной увеличивается на единицу" — не стал ничего придумывать, все сказано очень хорошо (После каждого выполнения тела цикла переменная i увеличивается на 1, а выполняется после каждого блока кода).

⭕️ Еще есть Декрементэто операция, в результате которой значение переменной уменьшается на единицу (- - 1)

++i

3️⃣:

Я уже сказал че за printf и scanf, Что за d в кавычках?? %d — это спецификатор формата, который говорит printf, что на этом месте в строке нужно подставить целое число.

🟰%d, %i — для целых чисел;

🟰%f, %g — для вещественных чисел;

🟰%c — для символов.


"&" — вот эта херь нужна для определения адреса переменной.

🟰 Операция * (звездочка) — позволяет получить значение объекта по его адресу.
🟰 Операция & (амперсанд) — позволяет определить адрес переменной.


 printf("Введите A[%d]: ", i); #Ввод A[i]
scanf("%d", &A[i]); #Ввод A[i]
}


4️⃣ В следующем цикле for, программа проходит по всем элементам массива и каждый элемент умножается на 2:

for (int i = 0; i < N; ++i) {
A[i] = A[i] * 2;


5️⃣ После умножения всех элементов, программа снова использует цикл для вывода всех значений массива и наша программа решена‼️ (Мы вводим 10 чисел и каждое умножается на 2)

for (int i = 0; i < N; ++i) { #Цикл по всем элементам
printf("%d ", A[i]); #Вывод A[i]
}


Итак, давайте подведем итоги:

🟰 Первый цикл производил ввод значений (чисел в нашем случае ) в массив ( Код запрашивал ввод чисел и сохранял их в массив A по индексу i ).

🟰 Второй цикл умножал каждый элемент массива на 2 и выводил результат

Я спать
🔗 Навигация по Машинному обучению

🧑‍💻 Введение

0️⃣ Простейшие понятия

1️⃣ И еще важные понятия (их будет много)

2️⃣ Пример 1 (Модель 1)

3️⃣ Пример 2 (Модель 2)

4️⃣ Модель 3 (Обязательно к прочтению)

5️⃣ Модель 4 и 5 (Вероятные изменения)

6️⃣ Модель 6 (Вероятные изменения)

7️⃣ Модель 7 (Как бы могла выглядеть наша модель)

🟰
ДОП НАВИГАЦИЯ ПО МОДЕЛЯМ🟰

🔗 Признаки моделей

🔗 Прогнозы и метки (Размеченные данные)

🔗 Неразмеченные данные

🔗 Контролируемое обучение и примеры

🔗 Неконтролируемое обучение

🔗 Алгоритмы кластеризации

🔗 Кластеры и кластеризация

🔗 Где нужна кластеризация ? (примеры)

🔗 Понижение размерности

🔗 Матричная факторизация и разложение по сингулярным значениям (Введение в тему)

🔗 Вспоминаем кластеризацию и алгоритм K-средних

🔗 Вспоминаем понижение размерности

🔗 Продолжаем матричную факторизацию

🔗 Алгоритм матричной факторизации SVD (Разложение по сингулярным значениям)

__________________________________

🟰Н А В И Г А Ц И Я🟰

‼️ ПРОДОЛЖЕНИЕ НАВИГАЦИИ ( МАШИННОЕ ОБУЧЕНИЕ 2 )
Итак, продолжаем машинку:

0️⃣ Начнем с того, что, когда мы хотим принять какое либо решение, которое основывается на нашем с вами опыте, мы задействуем такую концепцию, как
🔗 Вспоминание → Формулирование → Прогнозирование.

⭕️ Берем пример из книги: вспоминаем, что всю неделю шел дождь и прогнозируем о том, что сегодня он тоже скорее всего пойдет.

🟰МОДЕЛЬ — набор правил, которые представляют наши данные и могут быть задействованы для прогнозирования. (Именно модель обучается на данных для выполнения наших с вами задач).

🟰А вот АЛГОРИТМэто набор шагов, которые мы используем, чтобы построить модель.
👀1