python 生成1000行,2列特征的数据集,在没有归一化(标准化)前拟合数据,查看回归模型,进行归一化(标准化)后再进行数据拟合,查看回归模型。
时间: 2024-10-10 07:10:26 浏览: 25
此项目使用Python在莺尾花数据集上实现了决策树算法,文件里有数据集
在Python中,我们可以使用`numpy`库生成随机数据,并利用`sklearn`库来进行数据处理和回归模型训练。这里是一个简单的示例:
首先,我们导入所需的库:
```python
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.preprocessing import StandardScaler
```
然后生成1000行、2列的数据集:
```python
# 数据维度
n_samples = 1000
n_features = 2
# 创建随机数据
data = np.random.rand(n_samples, n_features)
X = data[:, :1] # 特征部分
y = data[:, 1] # 目标变量部分
```
接着,我们先不进行归一化,直接拟合线性回归模型:
```python
# 划分数据集为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 创建并训练线性回归模型
model_unnormalized = LinearRegression()
model_unnormalized.fit(X_train, y_train)
print("未归一化模型的得分:", model_unnormalized.score(X_test, y_test))
```
现在,我们将数据归一化(标准化),再拟合模型并查看结果:
```python
# 归一化数据
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)
# 使用归一化的数据重新训练模型
model_normalized = LinearRegression()
model_normalized.fit(X_train_scaled, y_train)
print("归一化后模型的得分:", model_normalized.score(X_test_scaled, y_test))
```
在这个例子中,你可以看到两次模型得分的不同,通常标准化后的模型会有更好的泛化能力,因为它的输入值范围更小,有助于某些算法如线性回归更好地学习。
阅读全文