Numpy 在Python中进行多项式回归的实现方法

Numpy 在Python中进行多项式回归的实现方法

在本文中,我们将介绍numpy在Python中进行多项式回归的实现方法。多项式回归是一种回归分析方法,它是用来预测因变量和自变量之间的函数关系。它是线性回归模型的一种扩展,可以通过添加多项式项来增加模型的复杂度,从而提高拟合的准确度。多项式回归广泛用于研究不同变量之间的非线性关系。

阅读更多:Numpy 教程

numpy多项式回归的实现

在Python中,Numpy库为我们提供了多项式回归的实现方法。要使用numpy进行多项式回归,需要以下步骤:

1.导入必要的库

import numpy as np
from sklearn.metrics import mean_squared_error
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.preprocessing import PolynomialFeatures
Python

2.准备数据

在进行多项式回归之前,我们需要一些数据。我们将使用sklearn自带的数据集,并使用Breast Cancer数据集作为我们的样本数据集。这个数据集包含30个输入特征和目标类别。为了进行多项式回归,我们需要将一个输入特征作为自变量,并选择一个目标类别作为因变量。

我们首先使用pandas库加载数据集并查看数据:

import pandas as pd
from sklearn.datasets import load_breast_cancer

data = load_breast_cancer()
df = pd.DataFrame(data["data"], columns=data["feature_names"])
df["target"] = data["target"]
print(df.head())
Python

输出:

   mean radius  mean texture  mean perimeter  mean area  mean smoothness  \
0        17.99         10.38          122.80     1001.0          0.11840   
1        20.57         17.77          132.90     1326.0          0.08474   
2        19.69         21.25          130.00     1203.0          0.10960   
3        11.42         20.38           77.58      386.1          0.14250   
4        20.29         14.34          135.10     1297.0          0.10030   

   mean compactness  mean concavity  mean concave points  mean symmetry  \
0           0.27760          0.3001              0.14710         0.2419   
1           0.07864          0.0869              0.07017         0.1812   
2           0.15990          0.1974              0.12790         0.2069   
3           0.28390          0.2414              0.10520         0.2597   
4           0.13280          0.1980              0.10430         0.1809   

   mean fractal dimension  ...  worst texture  worst perimeter  worst area  \
0                 0.07871  ...          17.33           184.60      2019.0   
1                 0.05667  ...          23.41           158.80      1956.0   
2                 0.05999  ...          25.53           152.50      1709.0   
3                 0.09744  ...          26.50            98.87       567.7   
4                 0.05883  ...          16.67           152.20      1575.0   

   worst smoothness  worst compactness  worst concavity  worst concave points  \
0            0.1622             0.6656           0.7119                0.2654   
1            0.1238             0.1866           0.2416                0.1860   
2            0.1444             0.4245           0.4504                0.2430   
3            0.2098             0.8663          3.拆分数据集
Python

将数据拆分为训练集和测试集是机器学习中的一项重要任务。我们使用sklearn提供的train_test_split函数将数据集拆分为训练集和测试集。通常情况下,我们将训练集和测试集的比例设置为80/20或者70/30。

X = df["mean radius"].values.reshape(-1, 1)
y = df["target"].values

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
Python

4.创建模型并训练

我们可以使用PolynomialFeatures库将特征进行转换,从而实现多项式回归。在多项式回归中,我们需要选择一个多项式的阶数,通常使用2或3作为阶数效果较好。

poly = PolynomialFeatures(degree=2)
X_poly_train = poly.fit_transform(X_train)
X_poly_test = poly.transform(X_test)

# 训练模型
model = LinearRegression()
model.fit(X_poly_train, y_train)
Python

5.预测结果并评估模型

我们可以使用该模型对测试数据进行预测。我们可以使用均方误差(MSE)作为评估模型的指标。

y_pred = model.predict(X_poly_test)
mse = mean_squared_error(y_test, y_pred)
print(f"MSE: {mse:.2f}")
Python

总结

本文介绍了使用Numpy进行多项式回归的步骤和实现方法。首先,我们导入必要的库,然后准备数据集并使用train_test_split函数将数据集拆分为训练集和测试集。接下来,我们使用PolynomialFeatures库将特征进行转换。然后,我们使用LinearRegression库训练模型,并使用均方误差作为评估指标。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册