import csv DATA_FILE = "data.csv" THETAS_FILE = "thetas.csv" def load_thetas(): with open(THETAS_FILE) as f: lines = f.readlines() return float(lines[0]), float(lines[1]) def load_data(): km = [] price = [] with open(DATA_FILE) as f: reader = csv.reader(f) next(reader) for row in reader: km.append(float(row[0])) price.append(float(row[1])) return km, price def mean(vals): return sum(vals) / len(vals) def estimate_price(mileage, theta0, theta1): return theta0 + theta1 * mileage def main(): kms, prices = load_data() theta0, theta1 = load_thetas() predicted_prices = [estimate_price(x, theta0, theta1) for x in kms] mean_price = mean(prices) r2 = 1 - sum((p - pp) ** 2 for p, pp in zip(prices, predicted_prices)) / sum( (p - mean_price) ** 2 for p in prices ) print(f"R-squared = {r2}") if __name__ == "__main__": main()