【sklearn的一般流程】数据的获取



1.生成回归数据 make_regression()

from sklearn.datasets import make_regression
X, y, coef = make_regression(n_samples=200, n_features=1, n_informative=1, n_targets=1,
                       bias = 0, effective_rank=None, noise = 20,
                        tail_strength=0,random_state=0, coef = True)

属性说明

属性默认值说明
n_samplesint, optional (default=100)样本数量
n_featuresint, optional (default=100)特征数量
n_informativeint, optional (default=10)对回归有效的特征数量
n_targetsint, optional (default=1)y的维度
biasfloat, optional (default=0.0)底层线性模型中的偏差项。相当于y的中位数
effective_rankint or None, optional (default=None)有效等级
noisefloat, optional (default=0.0)设置高斯噪声的标准偏差加到数据上。
shuffleboolean, optional (default=True)是否洗牌
coefboolean, optional (default=False)如果为真,则返回权重值
random_stateint,设置随机种子

个人理解:
n_informative:该项为对本次回归有用的特征数量,举个例子,我们想要预测房价,手上的特征有:房子面积、房龄、地段和房主的名字,显然前3项特征时有效特征,而房主的名字属于无效特征,改变其值并不影响回归效果。这里的n_informative就是3,总特征数为4.
noise:其值是高斯分布的偏差值,其值越大数据越分散,其值越小数据越集中。
shuffle:设置是否洗牌,如果为False,会按照顺序创建样本,一般设置为True。

返回值:X ,y ,coef

效果图:
regression
其coef(权重值) = 96.19

当设置更大的noise之后:
regression_big_noise

2.生成分类数据 make_classification()

from sklearn.datasets import make_classification
X, y = make_classification(n_samples=200, n_features=2, n_informative=2,n_redundant=0,
                           n_repeated=0, n_classes=2, n_clusters_per_class=1,random_state = 1)

plt.scatter(X[y == 0, 0], X[y == 0, 1], c = 'red', s = 100, label='0')
plt.scatter(X[y == 1, 0], X[y == 1, 1], c = 'blue', s = 100, label='1')
plt.scatter(X[y == 2, 0], X[y == 2, 1], c = 'green', s = 100, label='2')
plt.legend()
plt.show()

属性说明

属性默认值说明
n_featuresint, optional (default=20)特征个数 >= n_informative() + n_redundant + n_repeated
n_informativeint, optional (default=2)有意义的特征数,对本次分类有利的特征数
n_redundantint, optional (default=2)冗余信息,informative特征的随机线性组合
n_repeatedint, optional (default=0)重复信息,随机提取n_informative和n_redundant 特征
n_classesint, optional (default=2)分类类别
n_clusters_per_classint, optional (default=2)某一个类别是由几个cluster构成的(子类别)

返回值:X,y

效果图:
classification
当将n_clusters_per_class 设置成2,即每个类中有2个子类别:
classification2

3. 生成二维线性不可分的数据集 make_circles()

from sklearn.datasets import make_circles
X, y = make_circles(n_samples=200, shuffle=True, noise = 0.05, factor=0.4, random_state=0)

plt.scatter(X[y == 0, 0], X[y == 0, 1], c = 'red', s = 100, label='0')
plt.scatter(X[y == 1, 0], X[y == 1, 1], c = 'blue', s = 100, label='1')
plt.scatter(X[y == 2, 0], X[y == 2, 1], c = 'green', s = 100, label='2')
plt.legend()
plt.show()

属性说明

属性默认值说明
n_samplesint, optional (default=100)样本的数量
shufflebool, optional (default=True)是否洗牌
noisedouble or None (default=None)设置高斯噪声的标准偏差加到数据上。
random_stateint随机种子
factordouble < 1 (default=.8)外圈和内圈的比例

返回值:X,y

效果图:
circle
当设置更大的factor时:
circle2

4. 生成用于聚类的数据集 make_blobs()

from sklearn.datasets import make_blobs
X, y = make_blobs(n_samples=200, n_features=2,centers = 4, cluster_std=0.5, center_box=(-5,5) ,random_state=0, shuffle= False)

plt.scatter(X[y == 0, 0], X[y == 0, 1], c = 'red', s = 100, label='0')
plt.scatter(X[y == 1, 0], X[y == 1, 1], c = 'blue', s = 100, label='1')
plt.scatter(X[y == 2, 0], X[y == 2, 1], c = 'green', s = 100, label='2')
plt.scatter(X[y == 3, 0], X[y == 3, 1], c = 'yellow', s = 100, label='3')
plt.legend()
plt.show()

属性说明

属性默认值说明
n_samplesint, optional (default=100)样本数量
n_featuresint, optional (default=2)特征数
centersint or array of shape [n_centers, n_features], optional中心数(类别数)
cluster_stdfloat or sequence of floats, optional (default=1.0)每个集群的标准差
center_boxpair of floats (min, max), optional (default=(-10.0, 10.0))每个样本的取值范围
random_stateint, RandomState instance or None, optional (default=None)随机种子
shufferboolean, optional (default=True)是否洗牌

返回值:X,y

效果图:
blobs
设置更小的cluster_std
blobs2

本节代码

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值