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
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())
输出:
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.拆分数据集
将数据拆分为训练集和测试集是机器学习中的一项重要任务。我们使用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)
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)
5.预测结果并评估模型
我们可以使用该模型对测试数据进行预测。我们可以使用均方误差(MSE)作为评估模型的指标。
y_pred = model.predict(X_poly_test)
mse = mean_squared_error(y_test, y_pred)
print(f"MSE: {mse:.2f}")
总结
本文介绍了使用Numpy进行多项式回归的步骤和实现方法。首先,我们导入必要的库,然后准备数据集并使用train_test_split函数将数据集拆分为训练集和测试集。接下来,我们使用PolynomialFeatures库将特征进行转换。然后,我们使用LinearRegression库训练模型,并使用均方误差作为评估指标。