生成1000行,2列特征的数据集,在没有归一化(标准化)前拟合数据,查看回归模型,进行归一化(标准化)后再进行数据拟合,查看回归模型
时间: 2024-10-24 22:06:02 浏览: 27
为了创建一个包含1000行2列特征的数据集,并进行无归一化和归一化后的数据拟合,我们可以使用Python的NumPy库来生成随机数据,然后利用scikit-learn库的LinearRegression模型进行拟合。以下是详细的步骤:
首先,导入所需的库:
```python
import numpy as np
from sklearn.linear_model import LinearRegression
from sklearn.preprocessing import StandardScaler
```
**生成原始数据集(无归一化)**:
```python
# 创建随机数据,假设特征1和特征2都是均匀分布的浮点数
n_samples = 1000
n_features = 2
np.random.seed(42) # 设置随机种子以便复现结果
X = np.random.rand(n_samples, n_features)
y = np.random.rand(n_samples, 1)
# 创建一个线性回归模型
model = LinearRegression()
```
**拟合原始数据**:
```python
# 拟合模型
model.fit(X, y)
print("原始数据拟合前的模型参数: ", model.coef_)
```
**数据归一化(标准化)**:
```python
# 使用StandardScaler进行数据标准化
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)
# 拟合标准化后的数据
model.fit(X_scaled, y)
```
**比较拟合后的模型参数**:
```python
print("数据归一化后模型参数: ", model.coef_)
```
在这个例子中,你可以观察到:
1. **无归一化**:如果没有对数据进行归一化,模型可能会受到数据范围的影响,即较大的特征值可能赋予更大的权重。
2. **归一化**:经过归一化后,所有的特征都在相似的范围内,使得每个特征的重要性相对更公平,有助于模型更好地捕捉它们之间的关系。
阅读全文