by Anonymous » 19 Aug 2025, 12:13
Ich kodiere einen linearen Regressionscode in Python, ich habe die Formeln verwendet, die ich gelernt und überprüft habe, und versuchte auch, den Datensatz zu normalisieren, was dann passiert ist und die Werte des Gewichts und die Vorspannung die exponentielle Zunahme von Werten verändert haben, aber immer noch einige Fehler gibt, da die Bias immer noch im Bereich von 10^-18 I-Verwendung des Immobiliendatensatzes aus dem Kaggle-Here ist. />
https://www.kaggle.com/datasets/nitinsh ... is-dataset
Hier ist der Code, den ich geschrieben habe.
Code: Select all
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
def gradient_descent(x, y, m, c, n):
delta_m = (-2/n) * np.sum(x * (y - (m*x + c)))
delta_c = (-2/n) * np.sum(y - (m*x + c))
return delta_m, delta_c
def linear_regression(epochs, m, c, learning_rate, x, y):
n = len(x)
for i in range(epochs):
delta_m, delta_c = gradient_descent(x, y, m, c, n)
m -= learning_rate * delta_m
c -= learning_rate * delta_c
if (i+1) % 1000 == 0:
print(f"After {i+1} epochs: m = {m}, c = {c}")
return m, c
df = pd.read_csv("archive/real_estate.csv")
df = df[['apartment_total_area', 'price_in_USD']].dropna()
df['apartment_total_area'] = (
df['apartment_total_area']
.astype(str)
.str.replace(' m²', '', regex=False)
.str.replace(' ', '', regex=False)
.str.replace(',', '.', regex=False)
.astype(float)
)
# Clean price_in_USD
df['price_in_USD'] = (
df['price_in_USD']
.astype(str)
.str.replace('$', '', regex=False)
.str.replace(',', '', regex=False)
.str.strip()
.astype(float)
)
x = df['apartment_total_area'].to_numpy()
y = df['price_in_USD'].to_numpy()
x_mean, x_std = x.mean(), x.std()
y_mean, y_std = y.mean(), y.std()
x_s = (x - x_mean)/x_std
y_s = (y - y_mean)/y_std
m, c = 0, 0
epochs = 20000
learning_rate = 0.0001
m_s, c_s = linear_regression(epochs, m, c, learning_rate, x_s, y_s)
m_orig = m_s * (y_std / x_std)
c_orig = y_mean + c_s * y_std - m_orig * x_mean
print(f"Final slope (m): {m_orig}")
print(f"Final intercept (c): {c_orig}")
plt.scatter(x, y, color="blue")
plt.plot(x, m_orig*x + c_orig, color="red")
plt.xlabel("Apartment Total Area (m²)")
plt.ylabel("Price in USD")
plt.show()
Kann mir jemand helfen, herauszufinden, was das
Problem ist?>
Ich kodiere einen linearen Regressionscode in Python, ich habe die Formeln verwendet, die ich gelernt und überprüft habe, und versuchte auch, den Datensatz zu normalisieren, was dann passiert ist und die Werte des Gewichts und die Vorspannung die exponentielle Zunahme von Werten verändert haben, aber immer noch einige Fehler gibt, da die Bias immer noch im Bereich von 10^-18 I-Verwendung des Immobiliendatensatzes aus dem Kaggle-Here ist. />https://www.kaggle.com/datasets/nitinsharma05/real-estate-analysis-dataset
Hier ist der Code, den ich geschrieben habe.[code]import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
def gradient_descent(x, y, m, c, n):
delta_m = (-2/n) * np.sum(x * (y - (m*x + c)))
delta_c = (-2/n) * np.sum(y - (m*x + c))
return delta_m, delta_c
def linear_regression(epochs, m, c, learning_rate, x, y):
n = len(x)
for i in range(epochs):
delta_m, delta_c = gradient_descent(x, y, m, c, n)
m -= learning_rate * delta_m
c -= learning_rate * delta_c
if (i+1) % 1000 == 0:
print(f"After {i+1} epochs: m = {m}, c = {c}")
return m, c
df = pd.read_csv("archive/real_estate.csv")
df = df[['apartment_total_area', 'price_in_USD']].dropna()
df['apartment_total_area'] = (
df['apartment_total_area']
.astype(str)
.str.replace(' m²', '', regex=False)
.str.replace(' ', '', regex=False)
.str.replace(',', '.', regex=False)
.astype(float)
)
# Clean price_in_USD
df['price_in_USD'] = (
df['price_in_USD']
.astype(str)
.str.replace('$', '', regex=False)
.str.replace(',', '', regex=False)
.str.strip()
.astype(float)
)
x = df['apartment_total_area'].to_numpy()
y = df['price_in_USD'].to_numpy()
x_mean, x_std = x.mean(), x.std()
y_mean, y_std = y.mean(), y.std()
x_s = (x - x_mean)/x_std
y_s = (y - y_mean)/y_std
m, c = 0, 0
epochs = 20000
learning_rate = 0.0001
m_s, c_s = linear_regression(epochs, m, c, learning_rate, x_s, y_s)
m_orig = m_s * (y_std / x_std)
c_orig = y_mean + c_s * y_std - m_orig * x_mean
print(f"Final slope (m): {m_orig}")
print(f"Final intercept (c): {c_orig}")
plt.scatter(x, y, color="blue")
plt.plot(x, m_orig*x + c_orig, color="red")
plt.xlabel("Apartment Total Area (m²)")
plt.ylabel("Price in USD")
plt.show()
[/code]
Kann mir jemand helfen, herauszufinden, was das [url=viewtopic.php?t=26065]Problem[/url] ist?>