matplotlib - 使用 Matplotlib 理解和绘制 L2 正则化
问题描述
我正在尝试学习 L2 正则化并使用 matplotlib 绘制它。
我正在关注官方 sklearn 文档。我创建了一个示例代码来看看它是如何工作的。下面是我的代码。
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import PolynomialFeatures
from sklearn.pipeline import make_pipeline
from sklearn.linear_model import Ridge
lambda_value = 0.1
X = np.sort(np.random.uniform(0, 1, 100))[:, np.newaxis]
N = np.random.normal(0, 1)
y = np.sin(2*np.pi*X) + N * 0.1
X_plot = np.linspace(0, 1, 100)
X_train, y_train, X_test, y_test = train_test_split(X, y, test_size=0.5)
train_err = []
test_err = []
pipeline = make_pipeline(PolynomialFeatures(degree=9),Ridge(alpha=lambda_value))
pipeline.fit(X_train, y_train)
y_train_preds = pipeline.predict(X_train)
y_test_preds = pipeline.predict(X_test)
plt.scatter(X, y, color='b')
plt.plot(X_test, y_test_preds, color='r')
plt.show()
为什么它适合这样(红色线)?据我了解,它应该是一条线。
预测错了吗?或密谋?
我在哪里做错了?
解决方案
推荐阅读
- node.js - 我可以使用 Terraform 从本地 ZIP 文件而不是 S3 对象部署 Elastic Beanstalk 应用程序吗?
- javascript - face-api.js --- 识别实时服务器问题
- nginx - 重启后如何将nginx服务器重定向到google.com?
- java - 如何监听数据类对象的本地变化,从而自动更新远程 Firebase 文档
- php - 从日期数组之外的数据库表中获取日期
- python - 从字符串创建 django 查询
- c++ - 为什么 `it1++` 有效,但 `it1=it1+1` 无效,其中 it1 是列表容器的迭代器
- android - ExoPlayer 是否为 ConcatenatingMediaSource 中的每个媒体源创建一个 windowIndex?
- python-3.x - 如何使用 google 的电子表格 API 来检索电子表格的创建日期和时间?
- unity3d - unity : 为射击游戏制作功率计