Regresia liniară

Introducere în TensorFlow în Python

Isaiah Hull

Visiting Associate Professor of Finance, BI Norwegian Business School

Ce este regresia liniară?

Această imagine prezintă un grafic scatter al logaritmului natural al suprafeței casei în picioare pătrate față de logaritmul natural al prețului casei în dolari.

Introducere în TensorFlow în Python

Ce este regresia liniară?

Această imagine prezintă o dreaptă de regresie ajustată pe un grafic scatter al logaritmului natural al suprafeței casei în picioare pătrate față de logaritmul natural al prețului casei în dolari.

Introducere în TensorFlow în Python

Modelul de regresie liniară

  • Un model de regresie liniară presupune o relație liniară:
    • $price = intercept + size*slope + error$
  • Acesta este un exemplu de regresie univariată.
    • Există o singură variabilă explicativă, size.
  • Modelele de regresie multiplă au mai mult de o variabilă explicativă.
    • Ex. size și location
Introducere în TensorFlow în Python

Regresia liniară în TensorFlow

# Define the targets and features
price = np.array(housing['price'], np.float32)
size = np.array(housing['sqft_living'], np.float32)

# Define the intercept and slope
intercept = tf.Variable(0.1, np.float32)
slope = tf.Variable(0.1, np.float32)
# Define a linear regression model
def linear_regression(intercept, slope, features = size):
    return intercept + features*slope
# Compute the predicted values and loss
def loss_function(intercept, slope, targets = price, features = size):
    predictions = linear_regression(intercept, slope)
    return tf.keras.losses.mse(targets, predictions)
Introducere în TensorFlow în Python

Regresia liniară în TensorFlow

# Define an optimization operation
opt = tf.keras.optimizers.Adam()
# Minimize the loss function and print the loss
for j in range(1000):
    opt.minimize(lambda: loss_function(intercept, slope),\
    var_list=[intercept, slope])
    print(loss_function(intercept, slope))
tf.Tensor(10.909373, shape=(), dtype=float32)
...
tf.Tensor(0.15479447, shape=(), dtype=float32)
# Print the trained parameters
print(intercept.numpy(), slope.numpy())
Introducere în TensorFlow în Python

Să exersăm!

Introducere în TensorFlow în Python

Preparing Video For Download...