我无法使用 Sklearn 库通过套索回归获得我想要的输出

I can't get the output I want with Lasso Regression using the Sklearn library

我正在尝试针对随机样本数据集建立回归模型。但是当我尝试不同的 alpha 值时,预测输出每次都变成一条直线。下面你可以看到我的代码和输出的比较。你认为我哪里做错了?

#Importing libraries. 
import numpy as np
import pandas as pd
import random
import matplotlib.pyplot as plt
from sklearn.linear_model import Lasso
#Define input array with angles from 60deg to 300deg converted to radians
x = np.array([i*np.pi/180 for i in range(60,300,4)])
np.random.seed(10)  #Setting seed for reproducibility
y = np.sin(x) + np.random.normal(0,0.15,len(x))
data = pd.DataFrame(np.column_stack([x,y]),columns=['x','y'])
X = data['x']
Y = data['y']
X = X.values.reshape(-1,1)
Y = Y.values.reshape(-1,1)
#Lasso regression
model = Lasso(alpha=0.001)  #Alpha = 0.001    
model.fit(X,Y)                
Y_predicted_lasso = model.predict(X) 
#Plot
plt.scatter(X,Y)
plt.plot(X,Y_predicted_lasso,'r')
plt.show()

comparison1 comparison2

以上是我的意思:

#Importing libraries. 
import numpy as np
import pandas as pd
import random
import matplotlib.pyplot as plt
from sklearn.linear_model import Lasso
#Define input array with angles from 60deg to 300deg converted to radians

x = np.array([i*np.pi/180 for i in range(60,300,4)])
np.random.seed(10)  #Setting seed for reproducibility
y = np.sin(x) + np.random.normal(0,0.15,len(x))

x2 = np.power(x, 2)
x3 = np.power(x, 3)
x4 = np.power(x, 4)

data = pd.DataFrame(np.column_stack([x, x2, x3, x4, y]), columns=["x", "x2", "x3", "x4", "y"])


X = data[["x", "x2", "x3", "x4"]]
Y = data["y"]
# X = X.values.reshape(-1,1)
Y = Y.values.reshape(-1, 1)

# Lasso regression
model = Lasso(alpha=0.00001, max_iter=30_000)  # Alpha = 0.001
model.fit(X, Y)
Y_predicted_lasso = model.predict(X)

# Plot
plt.scatter(X.x, Y)
plt.plot(X.x, Y_predicted_lasso, "r")
plt.show()