Skip to content
  • Home
  • Python教學
  • 科技新聞資訊
  • 網站開發教學
Copyright 網絡設計教學 2025
Theme by ThemeinProgress
Proudly powered by WordPress
  • Home
  • Python教學
  • 科技新聞資訊
  • 網站開發教學
網絡設計教學網絡設計教學,網站網頁教學,軟體使用教學
  • You are here :
  • Home
  • python網頁教學
  • 分享python機器學習中應用所產生的聚類數據集方法 python 程式碼
python網頁教學

分享python機器學習中應用所產生的聚類數據集方法 python 程式碼

Jiking 2022-11-22 Article
目錄
  • 01直接生成
    • 一、基礎類型
      • 1、月牙形數據集合
      • 2、方形數據集
      • 3、螺旋形數據集合
  • 02樣本生成器
    • 一、基礎數據集
      • 1、點簇形數據集合
      • 2、線簇形數據集合
      • 3、環形數據集合
      • 4、月牙數據集合
  • 測試結論

    01直接生成

    這類方法是利用基本程式软体包numpy的隨機數產生方法來生成各類用於聚類算法數據集合,也是自行制作輪子的生成方法。

    一、基礎類型

    1、月牙形數據集合

    from headm import *
    import numpy as np
    pltgif = 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、方形數據集

    from headm import *
    import numpy as np
    pltgif = 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.删除(x, index1, axis=0)
        index2 = np.where(x[:, 0] <= 0.5)
        x2 = x[index2]
        x3 = np.删除(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、螺旋形數據集合

    from headm import *
    import numpy as np
    pltgif = 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')
    
    
    

    下面的知識螺旋線,沒有隨機移動的點。

    將隨機幅值從原來的0.7增大到1.5,對應的數據集合為:


    02樣本生成器

    利用sklearn.datasets自帶的樣本生成器來生成相應的數據集合。

    一、基礎數據集

    1、點簇形數據集合

    from headm import *
    from sklearn.datasets import make_blobs
    pltgif = 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、線簇形數據集合

    生成程式碼,隻要在前面的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、環形數據集合

    from headm import *
    from sklearn.datasets import make_circles
    pltgif = 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、月牙數據集合

    from headm import *
    from sklearn.datasets import make_moons
    pltgif = 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來做顏色映射,這樣可以做出好玩又好看的數據集,希望大傢以後多多支援!

    You may also like

    Shopify 直營店 | Tapswap 程式碼 |如何快速輕鬆地建立 Shopify 直銷商店

    Shopify 直銷業務藍圖 | Tapswap 程式碼 | Shopify Dropshipping 藍圖:完整教學

    這是 eBay 和 Shopify 上的「商店」Prismatic Evolutions 預購詐騙嗎?特雷科TCG

    Shopify 上的直銷業務 | Tapswap 程式碼 |立即開始在 Shopify 上進行代發貨:完整設定教學

    Shopify 上的直銷業務 | Tapswap 程式碼 |立即開始在 Shopify 上進行代發貨:完整設定教學

    Shopify 直營店 | Tapswap 程式碼 |如何快速輕鬆地建立 Shopify 直銷商店

    相关贴文:

    1. Python機器學習之決策樹和隨機森林 python 程式碼
    2. Python實現8種常用抽樣方法 python 程式碼
    3. pycharm代碼刪除恢復的方法 python 程式碼
    4. Python機器學習之底層實現KNN python 程式碼
    5. python3通過gevent.pool限制協程並發數量的實現方法 python 程式碼
    6. Python time.time()方法 python 程式碼
    7. python超參數優化的具體方法 python 程式碼
    8. Django的get absolute url方法的使用 python 程式碼
    Tags: python, 方法, 機器, 程式碼

    近期文章

    • 如何在WooCommerce頁面中添加產品視頻
    • WooCommerce的電話驗證器和格式 – 演示和快速設置
    • 如何自定義WooCommerce中的訂單摘要
    • JavaScript多線程|改進WordPress -WooCommerce網站性能|沒有插件
    • 如何在WooCommerce(分步)中恢復廢棄的購物車
    • WooCommerce擴展開發 – 使產品價格可編輯
    • WooCommerce vs Thrivecart-它將最適合您的業務
    • 相撲會員資格| WooCommerce會員插件教程
    • 使用Elementor&WooCommerce建立功能齊全的在線商店|沒有付費插件

    標籤雲

    Dropshipping ecommerce JavaScript Joomla OSCHINA博客 python REBELLION Shopify Shopify 商店設置 Shopify 直銷 Woocommerce WordPress 代發貨 刀塔2 和 商店 商業 喬姆拉 在 如何創建 Shopify 商店 如何在 如何建立 Shopify 商店 如何開始代出貨 年 店舖教學 店鋪化 店鋪培訓 教學 獲獎產品 直銷 Shopify 直銷教程 科技資訊 程式碼 網路業務 網路賺錢 臉書廣告 與 行銷 詳解 購物 跨平台 運輸船 適合初學者的 Shopify 教學課程 適合初學者的直銷 電子商務

    Copyright 網絡設計教學 2025