设存在一个未知函数映射,使得输入空间和输出空间存在某种函数关系,给定一定样本集,请用线性回归模型对其拟合,采用三 种基函数,用python编写程序
时间: 2024-10-11 20:11:10 浏览: 62
线性回归是一种基本的统计学方法,用于建立输入变量和连续输出之间的线性关系。对于非线性的数据,我们可以通过选择适当的基函数将其转换为线性形式。这里我们将使用Python中的`sklearn`库来演示如何使用多项式特征(包括线性、二次和三次)进行线性回归拟合。
首先,你需要安装所需的库:
```bash
pip install numpy pandas sklearn
```
然后,你可以编写如下的Python代码:
```python
import numpy as np
import pandas as pd
from sklearn.preprocessing import PolynomialFeatures
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
# 假设你有一个二维样本数据集df,x是输入列,y是输出列
# df = pd.read_csv('your_data.csv') # 请替换为实际的数据读取
# 将数据分为特征和目标值
X = df['x'].values.reshape(-1, 1) # 输入特征
y = df['y'].values.reshape(-1, 1) # 输出值
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 创建三种基函数的转换器
poly_features = {
'linear': PolynomialFeatures(degree=1),
'quadratic': PolynomialFeatures(degree=2),
'cubic': PolynomialFeatures(degree=3)
}
# 对每一种基函数应用到数据上,并创建新的特征矩阵
for name, feature in poly_features.items():
X_train_poly = feature.fit_transform(X_train)
X_test_poly = feature.transform(X_test)
# 初始化并训练线性回归模型
model = LinearRegression()
model.fit(X_train_poly, y_train)
# 打印训练结果
print(f"--- Using {name} basis ---")
print("Intercept:", model.intercept_)
print("Coefficients:", model.coef_)
# 预测并评估模型性能
predictions = model.predict(X_test_poly)
score = model.score(X_test_poly, y_test)
print(f"R^2 Score: {score:.2f}")
#
阅读全文