一元线性回归鸢尾花
时间: 2025-05-15 07:06:37 浏览: 13
### 使用一元线性回归对鸢尾花数据集进行建模和预测
在一元线性回归中,目标是找到输入变量 \(X\) 和输出变量 \(y\) 之间的线性关系。对于鸢尾花数据集来说,通常会选取其中一个特征作为自变量 \(X\),并将其与其他某个连续型的目标变量关联起来(尽管鸢尾花数据集中标签通常是类别型)。以下是实现该过程的一个具体代码示例。
#### 导入必要的库
为了完成此任务,需要导入 `pandas`、`numpy` 和 `scikit-learn` 中的相关模块来加载数据、构建模型以及评估性能。
```python
import numpy as np
import pandas as pd
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error, r2_score
```
#### 加载鸢尾花数据集
通过 `load_iris()` 函数可以方便地获取鸢尾花数据集,并从中提取所需的单个特征用于一元线性回归分析。
```python
# 加载数据集
data = load_iris()
df = pd.DataFrame(data.data, columns=data.feature_names)
# 假设我们选择 'sepal length (cm)' 作为 X 变量
X = df[['sepal length (cm)']].values
# 构造 y 变量,这里假设使用另一个特征作为目标值
y = df['petal width (cm)'].values
```
#### 划分训练集与测试集
将数据划分为训练集和测试集以便后续验证模型的效果。
```python
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
```
#### 创建并拟合线性回归模型
利用 `LinearRegression` 类创建一个简单的线性回归模型,并对其进行训练。
```python
model = LinearRegression()
model.fit(X_train, y_train)
```
#### 进行预测
使用已训练好的模型对测试集中的样本进行预测操作。
```python
y_pred = model.predict(X_test)
```
#### 计算评价指标
采用均方误差(Mean Squared Error, MSE)和决定系数 (\(R^2\)) 来衡量模型的表现。
```python
mse = mean_squared_error(y_test, y_pred)
r2 = r2_score(y_test, y_pred)
print(f"Mean Squared Error: {mse:.4f}")
print(f"R-squared Value : {r2:.4f}")
```
以上即为完整的基于鸢尾花数据集的一元线性回归建模流程[^1]。需要注意的是,在实际应用过程中可能还需要考虑更多因素如异常值处理、特征标准化等问题以提升最终效果[^3]。
阅读全文
相关推荐














