sklearn细解1-sklearn.datasets.samples_generator.make-classification

sklearn.datasets.samples_generator.make_classification

sklearn.datasets.make_classification(n_samples=100, n_features=20, ***, n_informative=2, n_redundant=2, n_repeated=0, n_classes=2, n_clusters_per_class=2, weights=None, flip_y=0.01, class_sep=1.0, hypercube=True, shift=0.0, scale=1.0, shuffle=True, random_state=None)

这个API主要是为了用于生成随机的n类分类问题。

主要的参数详解:

参数 类型 参数默认值 说明
n_samples int 100 随机数的数量
n_features int 20 总的特征数量。这是从有信息的数据点、冗余数据点、重复数据点和特征点-有信息的点-冗余的点-重复点中随机选择的
n_informative int 2 有信息特征的数量
n_redundant int 2 冗余特征的数量。这些特征是作为有信息特征的堆积线性组合
n_repeated int 0 重复特征的数量。从有信息的特征和冗余特征中随机舟曲
n_classes int 2 类别或标签的数量
n_clusters_per_class int 2 每个类别中cluster的数量
weights floats列表(或None) None 每个类的权重,用于分配样本点
flip_y float 0.01 随机分配类别的样本所占的比例。较大的值毁在标签中引入噪声,使分类任务更加困难。
class_sep float 1.0 这个因素决定了hypercube的size。较大的值会分散聚/类别,并且使得分类任务更加容易
hypercube bool True 如果为True,则将群集放置在超立方体的顶点上。 如果为False,则将簇放在随机多面体的顶点上。
shift float ndarray of shape(n_features,) or None, 0.0 按指定值移动要素。 如果为None,则将特征移动[-class_sep,class_sep]中绘制的随机值。
scale float ndarray of shape(n_features,) or None,1.0 将特征乘以指定值。 如果为None,则按[1,100]中绘制的随机值缩放要素。 缩放是在移位后发生的。
shuffle bool True 是否打乱样本集和特征集
random_state int 随机数字或None 随机种子。帮助固定数据,帮助更好地复现

返回:

参数 形状大小 含义
X (n_samples, n_features) API产生的样本(特征矩阵)
y (n_samples, ) 每个样本的类的标签(矩阵每行的标签(整型))

代码示例:

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from sklearn.datasets.samples_generator import make_classification
%matplotlib inline

# 生成数据
X, y = make_classification(n_samples=1000, n_features=3, n_classes=3, n_redundant=0, n_informative=2, n_clusters_per_class=1, class_sep=0.5, random_state=2021)

# 画样本的分布图像
fig = plt.figure()
ax = Axes3D(fig, rect=[0, 0, 1, 1], elev=30, azim=20)
ax.scatter(X[:,0], X[:,1], X[:,2], marker='o', c=y)
plt.show()

sklearn细解1-sklearn.datasets.samples_generator.make-classification_第1张图片

你可能感兴趣的:(sklearn,python,机器学习,深度学习)