分享python机器学习中应用所产生的聚类数据集方法

作者:卓晴 时间:2021-06-05 13:28:39 

分享python机器学习中应用所产生的聚类数据集方法

01直接生成

这类方法是利用基本程序软件包numpy的随机数产生方法来生成各类用于聚类算法数据集合,也是自行制作轮子的生成方法。

一、基础类型

1、月牙形数据集合

分享python机器学习中应用所产生的聚类数据集方法

from headm import *import numpy as nppltgif = PlotGIF()def moon2Data(datanum):    x1 = linspace(-3, 3, datanum)    noise = np.random.randn(datanum) * 0.15    y1 = -square(x1) / 3 + 4.5 + nois    x2 = linspace(0, 6, datanum)    noise = np.random.randn(datanum) * 0.15    y2 = square(x2 - 3) / 3 + 0.5 + noise    plt.clf()    plt.axis([-3.5, 6.5, -.5, 5.5])    plt.scatter(x1, y1, s=10)    plt.scatter(x2, y2, s=10)    plt.draw()    plt.pause(.1)    pltgif.append(plt)for _ in range(20):    moon2Data(300)pltgif.save(r'd:\temp\GIF1.GIF')

2、方形数据集

分享python机器学习中应用所产生的聚类数据集方法

from headm import *import numpy as nppltgif = PlotGIF()def moon2Data(datanum):    x = np.random.rand(datanum, 2)    condition1 = x[:, 1] <= x[:, 0]    condition2 = x[:, 1] <= (1-x[:, 0])    index1 = np.where(condition1 & condition2)    x1 = x[index1]    x = np.delete(x, index1, axis=0)    index2 = np.where(x[:, 0] <= 0.5)    x2 = x[index2]    x3 = np.delete(x, index2, axis=0)    plt.clf()    plt.scatter(x1[:, 0], x1[:, 1], s=10)    plt.scatter(x2[:, 0], x2[:, 1], s=10)    plt.scatter(x3[:, 0], x3[:, 1], s=10)    plt.draw()    plt.pause(.1)    pltgif.append(plt)for _ in range(20):    moon2Data(1000)pltgif.save(r'd:\temp\GIF1.GIF')

3、螺旋形数据集合

分享python机器学习中应用所产生的聚类数据集方法

from headm import *import numpy as nppltgif = PlotGIF()def randData(datanum):    t = 1.5 * pi * (1+3*random.rand(1, datanum))    x = t * cos(t)    y = t * sin(t)    X = concatenate((x,y))    X += 0.7 * random.randn(2, datanum)    X = X.T    norm = plt.Normalize(y.min(), y.max())    plt.clf()    plt.scatter(X[:, 0], X[:, 1], s=10, c=norm(X[:,0]), cmap='viridis')    plt.axis([-20, 21, -20, 16])    plt.draw()    plt.pause(.1)    pltgif.append(plt)for _ in range(20):    randData(1000)pltgif.save(r'd:\temp\GIF1.GIF')

下面的知识螺旋线,没有随机移动的点。

分享python机器学习中应用所产生的聚类数据集方法

将随机幅值从原来的0.7增大到1.5,对应的数据集合为:

分享python机器学习中应用所产生的聚类数据集方法
分享python机器学习中应用所产生的聚类数据集方法

02样本生成器

利用sklearn.datasets自带的样本生成器来生成相应的数据集合。

一、基础数据集

1、点簇形数据集合

分享python机器学习中应用所产生的聚类数据集方法

from headm import *from sklearn.datasets import make_blobspltgif = PlotGIF()def randData(datanum):    x1,y1 = make_blobs(n_samples=datanum, n_features=2, centers=3, random_state=random.randint(0, 1000))    plt.clf()    plt.scatter(x1[:,0], x1[:, 1], c=y1, s=10)    plt.draw()    plt.pause(.1)    pltgif.append(plt)for _ in range(20):    randData(300)pltgif.save(r'd:\temp\gif1.gif')

绘制三簇点集合,也可以使用如下的语句:

plt.scatter(x1[y1==0][:,0], x1[y1==0][:,1], s=10)plt.scatter(x1[y1==1][:,0], x1[y1==1][:,1], s=10)plt.scatter(x1[y1==2][:,0], x1[y1==2][:,1], s=10)

2、线簇形数据集合

分享python机器学习中应用所产生的聚类数据集方法

生成代码,只要在前面的x1后面使用旋转矩阵。

transformation = [[0.60834549, -0.63667341], [-0.40887718, 0.85253229]]x1 = dot(x1, transformation)

其中转换矩阵的特征值与特征向量为:

  • 特征值:[0.20581711.25506068]

  • 特征向量:[[-0.845237740.7015526][-0.53439045-0.71261768]]

3、环形数据集合

分享python机器学习中应用所产生的聚类数据集方法

from headm import *from sklearn.datasets import make_circlespltgif = PlotGIF()def randData(datanum):    x1,y1 = make_circles(n_samples=datanum, noise=0.07, random_state=random.randint(0, 1000), factor=0.6)    plt.clf()    plt.scatter(x1[y1==0][:,0], x1[y1==0][:,1], s=10)    plt.scatter(x1[y1==1][:,0], x1[y1==1][:,1], s=10)    plt.axis([-1.2, 1.2, -1.2, 1.2])    plt.draw()    plt.pause(.1)    pltgif.append(plt)for _ in range(20):    randData(1000)pltgif.save(r'd:\temp\gif1.gif')

4、月牙数据集合

分享python机器学习中应用所产生的聚类数据集方法

from headm import *from sklearn.datasets import make_moonspltgif = PlotGIF()def randData(datanum):    x1,y1 = make_moons(n_samples=datanum, noise=0.07, random_state=random.randint(0, 1000))    plt.clf()    plt.scatter(x1[y1==0][:,0], x1[y1==0][:,1], s=10)    plt.scatter(x1[y1==1][:,0], x1[y1==1][:,1], s=10)    plt.axis([-1.5, 2.5, -1, 1.5])    plt.draw()    plt.pause(.1)    pltgif.append(plt)for _ in range(20):    randData(1000)pltgif.save(r'd:\temp\gif1.gif')

测试结论

sklearn里面还有好多函数来自定制数据,除此之外还可以使用numpy生成,然后通过高级索引进行划分,最好结合着matplotlib中的cmap来做颜色映射,这样可以做出好玩又好看的数据集,希望大家以后多多支持脚本之家!

来源:https://blog.csdn.net/zhuoqingjoking97298/article/details/119114663

标签:python,机器学习,聚类数据集
0
投稿

猜你喜欢

  • Python二叉搜索树与双向链表转换实现方法

    2022-08-23 12:46:34
  • 网页表单项Input的高级限制级用法

    2008-10-27 16:50:00
  • python实现SOM算法

    2023-05-27 03:18:42
  • Python实现批量修改xml文件的脚本

    2022-01-14 06:14:03
  • Python中方法的缺省参数问题解读

    2022-10-07 17:00:45
  • python神经网络TensorFlow简介常用基本操作教程

    2024-01-02 17:44:45
  • SQL Server和MySql中创建临时表

    2008-06-19 13:31:00
  • python 如何调用远程接口

    2022-05-09 20:59:59
  • php中让上传的文件大小在上传前就受限制的两种解决方法

    2023-10-25 17:53:12
  • Golang数据类型比较详解

    2023-07-17 10:11:21
  • Dreamweaver 4.0使用技巧集锦

    2007-11-08 12:47:00
  • 一文详解Python中多进程和进程池的使用方法

    2023-12-01 04:10:12
  • 基于Pydantic封装的通用模型在API请求验证中的应用详解

    2022-02-20 20:12:24
  • Python实现时间序列可视化的方法

    2021-03-07 20:42:00
  • html风格tooltip效果的实现

    2010-04-08 13:00:00
  • 基于 Dubbo Admin 动态调整服务超时时间的操作步骤

    2023-01-06 13:53:54
  • 轻量级的原生js日历插件calendar.js使用指南

    2024-04-17 09:44:39
  • 深入理解Python3中的http.client模块

    2021-05-26 04:12:34
  • 卸载tensorflow-cpu重装tensorflow-gpu操作

    2022-07-31 12:46:13
  • vuex中使用对象展开运算符的示例

    2024-05-28 15:59:44
  • asp之家 网络编程 m.aspxhome.com