多项式回归算法模拟

本文通过Python3.6环境,展示了如何使用numpy、matplotlib和scikit-learn库进行线性回归和多项式特征转换。代码实例包括生成随机数据、线性模型拟合、多项式特征构建以及结果可视化。
摘要由CSDN通过智能技术生成

python3.6 环境

import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
from sklearn.preprocessing import PolynomialFeatures

# 生成随机数作为x变量,范围在-5到5之间,共100个样本
x = np.random.uniform(-5, 5, size=100)
X = x.reshape(-1, 1)

# 根据条件设置y变量,当x>0时,y设置为2;否则符合二次方程的值加上正态分布的噪声
y = np.where(x > 0, 2, 0.5 * x ** 2 + x + 2 - (0.3 * x) ** 3 + np.random.normal(0, 1, size=100))

# 用散点图形式展示生成的数据
plt.scatter(x, y)
plt.show()

# 实例化一个线性回归模型
lr = LinearRegression()

# 使用原始特征进行拟合
# lr.fit(X, y)  # 如果不想展示线性回归结果,可以注释掉这行和下面两行

# 得到模型预测值
# y_predict = lr.predict(X)  # 同上,注释掉

# 在图上展示原始数据和线性模型的拟合效果
# plt.scatter(x, y)  # 同上,注释掉
# plt.plot(x, y_predict, color='red')  # 同上,注释掉
# plt.show()  # 同上,注释掉

# 将原始特征转换为3次多项式特征
poly = PolynomialFeatures(degree=3)
poly.fit(X)
X_poly = poly.transform(X)

# 使用3次多项式特征进行拟合
lr.fit(X_poly, y)

# 得到模型预测值
y_predict_poly = lr.predict(X_poly)

# 只在图上展示原始数据和多项式模型的拟合效果
plt.scatter(x, y)
plt.plot(np.sort(x), y_predict_poly[np.argsort(x)], color='red')
plt.show()
print(x)
print(y)

#以下是对预测结果进行特殊处理,比如 >2 true ; <=2 false
# 预测结果与2比较,产生布尔数组
is_greater_or_equal_to_two = y_predict_poly >= 2
# 打印布尔数组
print(is_greater_or_equal_to_two)
# 如果您想要在布尔数组中看到对应的x和y的值,可以这样打印
for i in range(len(x)):
    print(f"x: {x[i]}, y: {y_predict_poly[i]}, >=2: {is_greater_or_equal_to_two[i]}")

在这里插入图片描述在这里插入图片描述

  • 8
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值