#生成分类数据集
#作者:冯德平(山野雪人)
这是本人学习记录,希望对初学者有益,高手可以直接跳过。下面是程序部分:
#导入生成数据集的函数make_blobs
from sklearn . datasets import make_blobs
import matplotlib . pyplot as plt #导人画图工具
data= make_blobs(n_samples=20 , centers =2 , random_state=6) #生成样本数为20,分类为2的数据集
#n_samples=20表示数据有20个,如果改成200,则有200个点的数据
#centers =2时,数据分成2类,random_state=8时,图形是呈上下分开的。
#random_state=8是数据分布的状态,如改成7,会使分类数据呈左右分,
#为使数据能重现,教学更方便,请不要改变random_state的值,
#以免别人看到的数据不一样,绘出的图也不一样,从而导致不易理解。
print(data)
X, y = data
#将生成的数据集进行可视化
plt.scatter (X[:,0], X[: ,1] ,s=500,c=y,marker=‘H’,cmap=plt.cm.spring,edgecolor= ‘r’)
#这里将s值取得较大,目的是想让图形显示大一点,以便观察,s为可选、默认值为20 。
#将上面market中的’H’分别改成’*’、‘D’、'p’试试看
plt.show()
‘’’
输出结果:
(array([[ 7.98907212, -8.45336239],
[ 5.95907415, -8.93235689],
[ 7.24923631, -10.34249897],
[ 8.07502382, -4.25949569],
[ 4.29743791, -10.00047495],
[ 7.93333064, -3.51553205],
[ 9.49649411, -3.7902975 ],
[ 7.9683312 , -3.23125265],
[ 5.8379695 , -10.64792075],
[ 10.48848359, -2.75858164],
[ 7.80961769, -9.68569457],
[ 7.28183008, -8.2229685 ],
[ 6.5390239 , -9.18802417],
[ 8.98426675, -4.87449712],
[ 5.37042238, -2.44715237],
[ 8.21201164, -1.54781358],
[ 6.24357586, -8.63186796],
[ 8.49142837, -2.54974889],
[ 5.06810666, -9.62969945],
[ 7.52132141, -2.12266605]]), array([1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0]))
‘’’
解释:
一、make_blobs的用法
1 导入数据库函数的写法:
from sklearn . datasets import make_blobs
2 生成数据库的语法:
data, label = make_blobs(n_features=2, n_samples=50, centers=2, random_state=888, cluster_std=[0.8, 2, 5])
n_features表示每一个样本有多少特征值
n_samples表示样本的个数
centers是聚类中心点的个数,可以理解为label的种类数
random_state是随机种子,可以固定生成的数据
cluster_std设置每个类别的方差
例:
from sklearn . datasets import make_blobs
data= make_blobs(n_samples=20 , centers =2 , random_state=2021)
X, y = data
print(‘data:’,data)
print(‘X:’,X)
print(‘y:’,y)
二、scatter的用法:
1语法:
matplotlib.pyplot.scatter(x, y, s=None, c=None, marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=None, linewidths=None, verts=None, edgecolors=None, *, data=None, **kwargs)
2注释:
x,y——设置点的位置
s——点的大小
c——点的颜色
marker——点的形状
cmap——可以用来控制颜色渐变,具体用法,见例子
norm——亮度
vmin,vmax——标准化亮度
alpha——点的透明度,透明度设置的好能够使图好看
linewidths,verts,edgcolors——点边缘线宽,(x,y)的序列,边缘线颜色
**kwargs——以字典方式输入参数
三、扩展阅读及参考文献:
https://blog.csdn.net/o0haidee0o/article/details/80509389
https://blog.csdn.net/zidephagino/article/details/80777906
https://blog.csdn.net/anneqiqi/article/details/64125186
https://blog.csdn.net/w576233728/article/details/86538060
http://blog.sina.com.cn/s/blog_c39df0460102xifx.html
https://matplotlib.org/index.html
https://blog.csdn.net/weixin_44177568/article/details/102213508
段小手,深入浅出Python机器学习,清华大学出版社,2018
Jason Brownlee,Machine Learning Mastery With Python,Machine Learning Mastery Pty Ltd,2016
‘’’