fork download
  1. import numpy as np
  2. from sklearn.linear_model import LinearRegression
  3.  
  4. X = np.array([[0.5, 25], [0.7, 30], [0.9, 35], [1.1, 40]])
  5.  
  6. y = np.array([10, 15, 20, 25])
  7.  
  8. model = LinearRegression()
  9. model.fit(X, y)
  10.  
  11. def predict_energy(solar_radiation, temperature):
  12. return model.predict(np.array([[solar_radiation, temperature]]))[0]
  13.  
  14. def gradient_descent_optimization(initial_solar_radiation, initial_temperature, target_energy, learning_rate, iterations):
  15. solar_radiation = initial_solar_radiation
  16. temperature = initial_temperature
  17. for i in range(iterations):
  18. energy = predict_energy(solar_radiation, temperature)
  19. gradient_solar = 2 * (energy - target_energy) * model.coef_[0]
  20. gradient_temp = 2 * (energy - target_energy) * model.coef_[1]
  21. solar_radiation -= learning_rate * gradient_solar
  22. temperature -= learning_rate * gradient_temp
  23. return solar_radiation, temperature
  24.  
  25. target_energy = 30
  26. initial_solar_radiation = 1.2
  27. initial_temperature = 45
  28. learning_rate = 0.01
  29. iterations = 1000
  30.  
  31. optimized_solar_radiation, optimized_temperature = gradient_descent_optimization(initial_solar_radiation, initial_temperature, target_energy, learning_rate, iterations)
  32. print("Optimized solar radiation:", optimized_solar_radiation)
  33. print("Optimized temperature:", optimized_temperature)
  34. print("Predicted energy output:", predict_energy(optimized_solar_radiation, optimized_temperature))
Success #stdin #stdout 0.38s 64684KB
stdin
Standard input is empty
stdout
('Optimized solar radiation:', 1.2001597444086756)
('Optimized temperature:', 45.003993610216696)
('Predicted energy output:', 29.99999999999305)