Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #program 1
- from math import sqrt
- # Calculate root mean squared error
- def rmse(actual, predicted):
- errors = [(predicted[i] - actual[i]) ** 2 for i in
- range(len(actual))]
- return sqrt(sum(errors) / len(actual))
- # Calculate mean
- def mean(values):
- return sum(values) / len(values)
- # Calculate covariance
- def covariance(x, y):
- mean_x, mean_y = mean(x), mean(y)
- return sum((x[i] - mean_x) * (y[i] - mean_y) for i in
- range(len(x)))
- # Calculate variance
- def variance(values):
- mean_val = mean(values)
- return sum((x - mean_val) ** 2 for x in values)
- # Calculate coefficients
- def coefficients(data):
- x = [row[0] for row in data]
- y = [row[1] for row in data]
- b1 = covariance(x, y) / variance(x)
- b0 = mean(y) - b1 * mean(x)
- return b0, b1
- # Simple linear regression
- def simple_linear_regression(train, test):
- b0, b1 = coefficients(train)
- return [b0 + b1 * row[0] for row in test]
- # Test dataset
- data = [[1, 1], [2, 3], [4, 3], [3, 2], [5, 5]]
- # Evaluate model
- x, y = [row[0] for row in data], [row[1] for row in data]
- print(f"x stats: mean={mean(x):.3f}, variance={variance(x):.3f}")
- print(f"y stats: mean={mean(y):.3f}, variance={variance(y):.3f}")
- print(f"Covariance: {covariance(x, y):.3f}")
- predicted = simple_linear_regression(data, data)
- print(f"Predicted: {predicted}")
- print(f"RMSE: {rmse(y, predicted):.3f}")
- b0, b1 = coefficients(data)
- print(f"Coefficients: B0={b0:.3f}, B1={b1:.3f}")
Advertisement
Add Comment
Please, Sign In to add comment