利用sklearn库随机生成数据集
时间: 2023-07-25 19:16:20 浏览: 51
sklearn库提供了很多生成数据集的函数,其中make_classification函数可以用于生成分类问题的数据集。下面是一个示例代码:
```python
from sklearn.datasets import make_classification
# 生成100个样本,每个样本有5个特征,2个类别,不平衡比例为1:2
X, y = make_classification(n_samples=100, n_features=5, n_classes=2, weights=[0.33, 0.67], random_state=42)
# 输出数据集的形状和标签的分布
print('X shape:', X.shape)
print('y distribution:', {i: np.sum(y == i) for i in np.unique(y)})
```
该代码随机生成100个样本,每个样本有5个特征,分为2个类别,不平衡比例为1:2。输出结果为:
```
X shape: (100, 5)
y distribution: {0: 33, 1: 67}
```
可以看到,生成的数据集中1类别的样本数量是0类别的两倍。可以使用weights参数来控制不平衡比例。
相关问题
如何使用sklearn生成随机数据集?
可以使用sklearn.datasets中的多个方法来生成随机数据集。以下是两个常用的方法:
1.生成符合正态分布的聚类数据
```python
from sklearn.datasets import make_blobs
# 生成100个样本,每个样本有2个特征,分为3个簇,标准差为1.0
X, y = make_blobs(n_samples=100, n_features=2, centers=3, cluster_std=1.0, center_box=(-10.0, 10.0), shuffle=True, random_state=None)
```
2.生成符合正态分布的回归数据
```python
from sklearn.datasets import make_regression
# 生成100个样本,每个样本有2个特征,噪声为10.0
X, y = make_regression(n_samples=100, n_features=2, noise=10.0, random_state=None)
```
基于Python,不调用sklearn库生成测试数据集
生成测试数据集的方法有很多种,以下是一种基于Python的方法,不需要调用sklearn库:
```
import numpy as np
# 定义数据集大小
m = 1000
n = 10
# 随机生成特征矩阵X
X = np.random.rand(m, n)
# 随机生成标签向量y
y = np.random.rand(m)
# 将标签向量转换为二元分类问题
y = np.where(y > 0.5, 1, 0)
# 打印特征矩阵和标签向量的形状
print('X shape:', X.shape)
print('y shape:', y.shape)
```
这个例子中,我们生成了一个大小为1000x10的特征矩阵X和一个大小为1000的标签向量y,其中标签向量被转换为二元分类问题。你可以根据需要修改代码,生成不同大小和类型的数据集。