import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib as mpl
%matplotlib inline
from sklearn.linear_model import Lasso , Ridge
from sklearn.model_selection import train_test_split
from sklearn.model_selection import GridSearchCV
path=r"C:\Users\Tsinghua-yincheng\Desktop\SZday94\data\Advertising.csv"
data=pd.read_csv(path)
x=data[["TV","Radio","Newspaper"]]
y=data["Sales"]
x_train,x_test,y_train,y_test= train_test_split(
x,y,train_size=0.8, random_state=1)
model=Lasso()
alpha_scan=np.logspace(-3,2,10)
lasso_model= GridSearchCV(model,
param_grid={"alpha":alpha_scan},
cv=10)
lasso_model.fit(x_train,y_train)
lasso_model.best_params_
lasso_model.score(x_test,y_test)
lasso_model.score(x_train,y_train)
mpl.rcParams['font.sans-serif'] = ['simHei']
mpl.rcParams['axes.unicode_minus'] = False
print(lasso_model.score(x_train,y_train))
print(lasso_model.score(x_test,y_test))
order=y_test.argsort(axis=0)
print(type(y_test))
y_hat=lasso_model.predict(x_test)
plt.figure(facecolor="w")
t=np.arange(len(x_test))
plt.plot(t,y_test,"r-",linewidth=2,label="真实数据")
plt.plot(t,y_hat,"g-",linewidth=2,label="预测数据")
plt.legend()
plt.title("拉格朗日回归预测")
plt.grid()
plt.show()
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/776facce0c5e02b1679c1bfeaf7b406a.png)
model=Ridge()
alpha_scan=np.logspace(-3,2,10)
lasso_model= GridSearchCV(model,
param_grid={"alpha":alpha_scan},
cv=10)
lasso_model.fit(x_train,y_train)
lasso_model.best_params_
print(lasso_model.score(x_train,y_train))
print(lasso_model.score(x_test,y_test))
order=y_test.argsort(axis=0)
print(type(y_test))
y_hat=lasso_model.predict(x_test)
plt.figure(facecolor="w")
t=np.arange(len(x_test))
plt.plot(t,y_test,"r-",linewidth=2,label="真实数据")
plt.plot(t,y_hat,"g-",linewidth=2,label="预测数据")
plt.legend()
plt.title("岭回归预测")
plt.grid()
plt.show()
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/347578b993bd38126ba7c75412cecb7e.png)