G

Untitled

public
Guest Apr 26, 2025 Never 34
Clone
Plaintext paste1.txt 34 lines (29 loc) | 1.33 KB
1
import matplotlib
2
import numpy as np
3
import matplotlib.pyplot as plt
4
#from sklearn.datasets.samples_generator import make_regression # for old sklearn version
5
from sklearn.datasets import make_regression # for new sklearn version
6
%matplotlib inline
7
8
sizes = np.loadtxt('flat.areas').reshape((26,1)) #załaduj wektor rozmiarów mieszkań
9
prices = np.loadtxt('flat.prices').reshape((26,1)) #załaduj wektor cen mieszkań
10
samples_cnt = len(prices) #pobierz liczność par rozmiar->cena
11
weight0 = 0.0 # inicjalizuj wagi
12
weight1 = 0.0 #
13
learning_rate = 0.0001 #stala uczenia
14
maxIteration = 100000 #liczba iteracji
15
16
for i in range(maxIteration):
17
# Wyliczanie przewidywanych cen
18
predicted_prices = weight0 + weight1 * sizes
19
20
# Obliczanie błędów
21
error = predicted_prices - prices
22
23
# Gradient Descent (aktualizacja wag)
24
weight0 -= learning_rate * np.sum(error) / samples_cnt # gradient wagi wyrazu wolnego
25
weight1 -= learning_rate * np.sum(error * sizes) / samples_cnt # gradient wagi cechy
26
27
plt.plot(sizes, prices, "x")
28
if len(predicted_prices) > 0:
29
plt.plot(sizes, predicted_prices, "r-")
30
plt.title('Ceny mieszkan w zaleznosci od metrazu')
31
plt.xlabel('metraz (m^2)')
32
plt.ylabel('Cena mieszkania (tys. zł)')
33
plt.show()
34
print("Wyznaczone wartości wag -> w0:", weight0, "w1:", weight1)