🟰Алгоритм линейной регрессии🟰
Немного теории, которая нам пригодится:
🔗 Входные данные — набор точек на плоскости.
🔗 Результат — прямая, проходящая близко к точкам
🔗 Процедура — выбираем случайную прямую → выбираем случайную точку данных → перемещаем прямую немного ближе к ней ( повторяем это )
🔗 Возврат — полученная прямая
p — цена дома в наборе данных;
Y — прогнозируемая цена дома;
r — количество комнат;
m — цена за комнату;
b — базовая цена за дом.
Теперь формула:
🟰Y = mr + b🟰 — прогнозируемая цена = цена за комнату × количество комнат + базовая цена дома
⭕️ Допустим, цена за комнату — 50000, у нас 3 комнаты в доме, а базовая цена 200000, как мог бы выглядеть код:
Немного теории, которая нам пригодится:
🔗 Входные данные — набор точек на плоскости.
🔗 Результат — прямая, проходящая близко к точкам
🔗 Процедура — выбираем случайную прямую → выбираем случайную точку данных → перемещаем прямую немного ближе к ней ( повторяем это )
🔗 Возврат — полученная прямая
p — цена дома в наборе данных;
Y — прогнозируемая цена дома;
r — количество комнат;
m — цена за комнату;
b — базовая цена за дом.
Теперь формула:
🟰Y = mr + b🟰 — прогнозируемая цена = цена за комнату × количество комнат + базовая цена дома
⭕️ Допустим, цена за комнату — 50000, у нас 3 комнаты в доме, а базовая цена 200000, как мог бы выглядеть код:
def predict_price(m, r, b):
return m * r + b
price_per_room = 50000
number_of_rooms = 3
base_price = 200000
predicted_price = predict_price(price_per_room, number_of_rooms, base_price)
print(f"Прогнозируемая цена дома: ${predicted_price}")
❤🔥2🤯1
_______________________
https://habr.com/ru/articles/469355/#p3
🔗 Очень полезная статья для ознакомления, а завтра будет полноценный пост, так что ждите гайс⚙️
https://habr.com/ru/articles/469355/#p3
🔗 Очень полезная статья для ознакомления, а завтра будет полноценный пост, так что ждите гайс⚙️
❤🔥2🤓1
⚙️ Итак, для начала, чтобы работать с библиотекой, нам нужно ее подключить:
import numpy as np
▫️np — это просто сокращение для нашей библиотеки, теперь нам будет куда проще обращаться к методам библиотеки
◾️ Чтобы создать массив, достаточно просто объявить переменную, пусть будет 🟰
s 🟰 и использовать встроенную функцию 🟰array🟰import numpy as np
s = np.array([1, 2, 3, 4, 5])
print(s) #Вывод: [1 2 3 4 5]
▫️Вот еще пример того, как мы можем создать одномерный, двумерный, трёхмерный и другие массивы:
import numpy as np
s = np.array([1, 2, 3, 4, 5])
s_1 = np.array([[1, 2, 3], [4, 5, 6]])
s_2 = np.array([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]])
print(s)
print(s_1)
print(s_2)
🔗 Вывод:
[1 2 3 4 5]
[[1 2 3]
[4 5 6]]
[[[ 1 2 3]
[ 4 5 6]]
[[ 7 8 9]
[10 11 12]]]
_______________________
▫️Создание массива из нулей указанной формы:
import numpy as np
zeros_array = np.zeros((3, 3))
print("Массив из нулей:\n", zeros_array)
Продолжение будет совсем скоро...
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥2🤓1
⚙️ Итак, продолжаем)
▫️Массив из нулей 3x3:
zeros_array = np.zeros((3, 3))
print("Массив из нулей:\n", zeros_array)
▫️Массив из единиц 2x4:
ones_array = np.ones((2, 4))
print("Массив из единиц:\n", ones_array)
▫️Массив 2x3, заполненный числом 7:
full_array = np.full((2, 3), 7)
print("Массив, заполненный семёрками:\n", full_array)
◼️ Кстати, в NumPy-массивы можно передавать не только целые числа, но и дробные:
s = np.array([1.4, 2.5, 3.7])
print(s)
# [1.4 2.5 3.7]
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥2🤓1
Гайс, всем ку! Даже не думайте, что я про вас забыл, да, скопилось очень много, но опускать руки никак нельзя! Надеюсь, вы меня понимаете ❤️
▫️Массив от 0 до 10 с шагом 2
np.arange(start, stop, step) — создаёт массив с числами от start до stop с шагом step
import numpy as np
s_array = np.arange(0, 10, 2)
print("Массив с шагом:\n", s_array)
#[0 2 4 6 8]
▫️ Массив из 10 значений от 0 до 2
np.linspace(start, stop, num) — создаёт массив из num равномерно распределённых чисел от start до stop
import numpy as np
l_array = np.linspace(0, 2, 10)
print("Равномерно распределённые значения:\n", l_array)
# [0. 0.22222222 0.44444444 0.66666667 0.88888889 1.11111111
# 1.33333333 1.55555556 1.77777778 2. ]
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥2🤓1
Что возвращает np.linspace(0, 10, 5)?
Anonymous Quiz
13%
Массив из чисел [0, 2, 4, 6, 8]
50%
Массив из чисел [0, 2.5, 5, 7.5, 10]
38%
Массив из чисел [0, 5, 10, 15, 20]
❤🔥2🤯1
Какой результат вернёт np.arange(5, 15, 2)?
Anonymous Quiz
88%
Массив из чисел [5, 7, 9, 11, 13]
0%
Массив из чисел [5, 10, 15]
0%
Массив из чисел [5, 15, 25]
13%
Массив из чисел [5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
❤1❤🔥1🤓1
Какой массив создаёт команда np.linspace(1, 10, 4)?
Anonymous Quiz
14%
[1.0, 2.0, 3.0, 4.0]
0%
[1.0, 3.0, 5.0, 10.0]
71%
[1.0, 4.0, 7.0, 10.0]
14%
[1.0, 5.5, 10.0]
❤🔥2❤1
Что вернёт команда np.ones((2, 3)) * 0?
Anonymous Quiz
0%
Массив [0, 0, 0]
29%
Массив [1, 1, 1, 1, 1, 1]
57%
Массив [[0, 0, 0], [0, 0, 0]]
14%
Ошибка кода
❤🔥2❤1
🧑💻Продолжаем обучаться ML...
0️⃣🔗 В NumPy-массивы можно передавать не только целые числа, но и дробные:
import numpy as np
b = np.array([1.7, 2.3, 5.7])
print(b)
#[1.7 2.3 5.7]
1️⃣ Мы можем указать конкретный тип с помощью дополнительного параметра 🟰
dtype🟰:import numpy as np
c = np.array([1, 2, 3], dtype='float32')
print(c)
# [1. 2. 3.]
Числа int32 занимают 32 бита, или 4 байта, а int16 — 16 бит, или 2 байта. Программисты используют параметр dtype, когда точно знают, что их переменные будут находиться в диапазоне от −32 768 до 32 767.
⁉️ Почему диапазон от −32768 до 32767
✅ В 16-битной системе каждое число хранится в 16 битах, один бит используется для хранения знака числа: 0 — положительное, 1 — отрицательное. Оставшиеся 15 бит используются для представления числового значения —2¹⁵ = 32,768
🔗 Отсюда:
Минимальное значение: -32,768,
Максимальное значение: 32,767
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥3
🔗 Разберем код:
0️⃣ Подключим библиотеку и и объяви переменные:
import numpy as np
a = np.int16(32000)
b = np.int16(768)
▫️Переменная a имеет значение 32,000, что близко к верхней границе диапазона int16.
▫️Переменная b имеет значение 768.
1️⃣ Сложение с переполнением:
result = np.int16(a + b)
▫️Математически у нас все выполняется (32000+768=32768), но, но, есть больное но! максимальное значение для int16 — 32,767.
▫️Результат 32,768 превышает этот предел, поэтому происходит переполнение.
▫️Теперь самое главное:
Завтра...
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥2👨💻1
⚙️ В прошлом посте мы остановились на том, что происходит переполнение...
▫️int16 — это 16-битный целый тип данных
▫️Один бит используется для знака числа (0 — положительное, 1 — отрицательное)
◻️ Из этих двух предложений следует, что диапазон значений: от -32,768 до 32,767 (На вопрос, что это за цифры и почему они такие, я отвечал несколько постов назад)
▫️Дак вот, результат у нас был именно 32,768, что превышает верхнюю границу диапазона (32,767) или выходит за нижнюю границу (-32,768)
Почему так ⁉️
‼️ Число (32,767) в двоичной системе:
0111 1111 1111 1111.
‼️ Если мы прибавим 1, получим 1000000000000000. И как раз наш int16 интерпретирует это как -32,768, так как старший бит стал равен 1
результат не помещается в 16 бит, и его старший бит становится "знаковым", что интерпретируется как отрицательное значение.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥2🤯1
Всем доброй ночи, гайс! Надеюсь, вы хорошо проведете свои выходные 😋
🔗 Для того, чтобы изображать любые линейные графики, диаграммы, и даже трехмерную визуализацию, придумали 🟰Matplotlib🟰
⚙️ Импорт библиотеки и все такое мы уже с вам знаем:
from matplotlib import pyplot as plt
# or
import matplotlib.pyplot as plt
🧑💻 Сейчас пробежим по основным функциям, а завтра напишем полноценный код:
0️⃣ plot()
▫️Строит линейный график (line plot)
▫️Принимает массивы значений для осей X и Y
🔗 Пример кода:
import matplotlib.pyplot as plt
x = [1, 2, 3, 4]
y = [10, 20, 25, 30]
plt.plot(x, y, label="График 1", color="blue", linestyle="--")
plt.legend()
plt.show()
1️⃣ scatter()
▫️Строит точечную диаграмму
🔗 Пример кода:
x = [5, 7, 8, 7, 2]
y = [99, 86, 87, 88, 100]
plt.scatter(x, y, color="red", marker="o")
plt.show()
2️⃣ bar()
▫️Создаёт столбчатую диаграмму
🔗 Пример кода:
categories = ['A', 'B', 'C', 'D']
values = [4, 7, 1, 8]
plt.bar(categories, values, color="green")
plt.show()
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥1👍1🤯1🤓1
from matplotlib import pyplot as plt
x = [1, 2, 3, 4] # координаты по оси X
y = [10, 20, 25, 30] # координаты по оси Y
plt.plot(x, y, label = 'График 1', color = 'blue', linestyle = '--') # Строит линейный график на основе данных
plt.legend() # Добавляет легенду на график
plt.show() # Показывает график в новом окне
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥2👍1🤯1
from matplotlib import pyplot as plt
x = [1, 2, 3, 4, 5, 6]
y = [11 ,22, 33, 44, 55, 66]
plt.scatter(x, y, color = 'red', label = 'График 2', marker = 'o') # создаёт точечную диаграмму, цвет точек, форму маркера
plt.legend()
plt.show()
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥2👍1🤯1
from matplotlib import pyplot as plt
categories = ['A', 'B', 'C', 'D', 'E']
values = [4, 7, 1, 9, 12]
plt.bar(categories, values, label = 'График 3', color = 'green')
plt.legend()
plt.show()
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥2👍1🤯1
from matplotlib import pyplot as plt
sizes = [15, 30, 45, 10]
labels = ['A', 'B', 'C', 'D']
plt.pie(sizes, labels = labels, autopct = '44%%', startangle = 140)
plt.legend()
plt.show()
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥2👍1🤯1