成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識庫 > 利用Python如何實現(xiàn)K-means聚類算法

利用Python如何實現(xiàn)K-means聚類算法

熱門標(biāo)簽:ai電銷機(jī)器人源碼 西藏房產(chǎn)智能外呼系統(tǒng)要多少錢 湛江智能外呼系統(tǒng)廠家 宿遷星美防封電銷卡 長沙高頻外呼系統(tǒng)原理是什么 ai電話機(jī)器人哪里好 地圖標(biāo)注審核表 百度地圖標(biāo)注沒有了 外呼并發(fā)線路

前言

K-Means 是一種非常簡單的聚類算法(聚類算法都屬于無監(jiān)督學(xué)習(xí))。給定固定數(shù)量的聚類和輸入數(shù)據(jù)集,該算法試圖將數(shù)據(jù)劃分為聚類,使得聚類內(nèi)部具有較高的相似性,聚類與聚類之間具有較低的相似性。

算法原理

1. 初始化聚類中心,或者在輸入數(shù)據(jù)范圍內(nèi)隨機(jī)選擇,或者使用一些現(xiàn)有的訓(xùn)練樣本(推薦)

2. 直到收斂

  • 將每個數(shù)據(jù)點分配到最近的聚類。點與聚類中心之間的距離是通過歐幾里德距離測量得到的。
  • 通過將聚類中心的當(dāng)前估計值設(shè)置為屬于該聚類的所有實例的平均值,來更新它們的當(dāng)前估計值。

目標(biāo)函數(shù)

聚類算法的目標(biāo)函數(shù)試圖找到聚類中心,以便數(shù)據(jù)將劃分到相應(yīng)的聚類中,并使得數(shù)據(jù)與其最接近的聚類中心之間的距離盡可能小。

給定一組數(shù)據(jù)X1,...,Xn和一個正數(shù)k,找到k個聚類中心C1,...,Ck并最小化目標(biāo)函數(shù):

其中是質(zhì)心,計算表達(dá)式為

上圖a表達(dá)了初始的數(shù)據(jù)集,假設(shè)k=2。在圖b中,我們隨機(jī)選擇了兩個k類所對應(yīng)的類別質(zhì)心,即圖中的紅色質(zhì)心和藍(lán)色質(zhì)心,然后分別求樣本中所有點到這兩個質(zhì)心的距離,并標(biāo)記每個樣本的類別為和該樣本距離最小的質(zhì)心的類別,如圖c所示,經(jīng)過計算樣本和紅色質(zhì)心和藍(lán)色質(zhì)心的距離,我們得到了所有樣本點的第一輪迭代后的類別。此時我們對我們當(dāng)前標(biāo)記為紅色和藍(lán)色的點分別求其新的質(zhì)心,如圖4所示,新的紅色質(zhì)心和藍(lán)色質(zhì)心的位置已經(jīng)發(fā)生了變動。圖e和圖f重復(fù)了我們在圖c和圖d的過程,即將所有點的類別標(biāo)記為距離最近的質(zhì)心的類別并求新的質(zhì)心。最終我們得到的兩個類別如圖f。當(dāng)然在實際K-Mean算法中,我們一般會多次運行圖c和圖d,才能達(dá)到最終的比較優(yōu)的類別。

算法流程

注意點:

  1. 對于K-Means算法,首先要注意的是k值的選擇,一般來說,我們會根據(jù)對數(shù)據(jù)的先驗經(jīng)驗選擇一個合適的k值,如果沒有什么先驗知識,則可以通過交叉驗證選擇一個合適的k值
  2. 在確定了k的個數(shù)后,我們需要選擇k個初始化的質(zhì)心,就像上圖b中的隨機(jī)質(zhì)心。由于我們是啟發(fā)式方法,k個初始化的質(zhì)心的位置選擇對最后的聚類結(jié)果和運行時間都有很大的影響,因此需要選擇合適的k個質(zhì)心,最好這些質(zhì)心不能太近。

流程:

輸入是樣本集D={x1,x2,...xm},聚類的簇樹k,最大迭代次數(shù)N

輸出是簇劃分C={C1,C2,...Ck}

    1) 從數(shù)據(jù)集D中隨機(jī)選擇k個樣本作為初始的k個質(zhì)心向量: {μ1,μ2,...,μk}

    2)對于n=1,2,...,N

      a) 將簇劃分C初始化為Ct=∅  t=1,2...k

      b) 對于i=1,2...m,計算樣本xi和各個質(zhì)心向量μj(j=1,2,...k)的距離:,將xixi標(biāo)記最小的為所對應(yīng)的類別。此時更新

      c) 對于j=1,2,...,k,對Cj中所有的樣本點重新計算新的質(zhì)心

      e) 如果所有的k個質(zhì)心向量都沒有發(fā)生變化,則轉(zhuǎn)到步驟3)

    3) 輸出簇劃分C={C1,C2,...Ck}

 Python實現(xiàn)

import numpy as np
import matplotlib.pyplot as plt
import random
from sklearn.datasets import make_blobs
np.random.seed(123)
from sklearn.cluster import KMeans
class Kmeans:
    def __init__(self,data,k):
        self.data=data
        self.k = k
    def cluster_data_Bysklearn(self):
        kmeans_model = KMeans(self.k,random_state=1)
        labels = kmeans_model.fit(self.data).labels_
        print(labels)
        return labels
 
    def kmeans(self):
        # 獲取4個隨機(jī)數(shù)
        rarray = np.random.random(size=self.k)
        # 乘以數(shù)據(jù)集大小——>數(shù)據(jù)集中隨機(jī)的4個點
        rarray = np.floor(rarray * len(self.data))
        # 轉(zhuǎn)為int
        rarray = rarray.astype(int)
        print('數(shù)據(jù)集中隨機(jī)索引', rarray)
        # 隨機(jī)取數(shù)據(jù)集中的4個點作為初始中心點
        center = data[rarray]
        # 測試比較偏、比較集中的點,效果依然完美,測試需要刪除以上代碼
        # center = np.array([[4.6,-2.5],[4.4,-1.7],[4.3,-0.7],[4.8,-1.1]])
        # 1行80列的0數(shù)組,標(biāo)記每個樣本所屬的類(k[i])
        cls = np.zeros([len(self.data)], np.int)
        print('初始center=\n', center)
        run = True
        time = 0
        n = len(self.data)
        while run:
            time = time + 1
            for i in range(n):
                # 求差
                tmp = data[i] - center
                # 求平方
                tmp = np.square(tmp)
                # axis=1表示按行求和
                tmp = np.sum(tmp, axis=1)
                # 取最小(最近)的給該點“染色”(標(biāo)記每個樣本所屬的類(k[i]))
                cls[i] = np.argmin(tmp)
            # 如果沒有修改各分類中心點,就結(jié)束循環(huán)
            run = False
            # 計算更新每個類的中心點
            for i in range(self.k):
                # 找到屬于該類的所有樣本
                club = data[cls == i]
                # axis=0表示按列求平均值,計算出新的中心點
                newcenter = np.mean(club, axis=0)
                # 如果新舊center的差距很小,看做他們相等,否則更新之。run置true,再來一次循環(huán)
                ss = np.abs(center[i] - newcenter)
                if np.sum(ss, axis=0) > 1e-4:
                    center[i] = newcenter
                    run = True
            print('new center=\n', center)
        print('程序結(jié)束,迭代次數(shù):', time)
        # 按類打印圖表,因為每打印一次,顏色都不一樣,所以可區(qū)分出來
        # for i in range(self.k):
        #     club = data[cls == i]
        #     self.showtable(club)
        # 打印最后的中心點
        self.showtable(center)
        #打印聚類標(biāo)簽
        print(cls)
 
    def showtable(self,data):
        x = data.T[0]
        y = data.T[1]
        plt.scatter(x, y)
        plt.show()
 
if __name__ == '__main__':
    data = np.random.rand(10,2)
    K = 4
    model = Kmeans(data,K)
 
    model.kmeans()
    model.cluster_data_Bysklearn()

結(jié)果:

自寫得出的    [0 2 0 0 0 2 3 2 1 2]
調(diào)用模型的出的[0 2 0 1 0 2 3 2 3 0]

jupyter notebook實現(xiàn)

import numpy as np
import matplotlib.pyplot as plt
import random
from sklearn.datasets import make_blobs
 
 
%matplotlib inline
X, y = make_blobs(centers=6, n_samples=1000)
print(f'Shape of dataset: {X.shape}')
 
fig = plt.figure(figsize=(8,6))
plt.scatter(X[:,0], X[:,1], c=y)
plt.title("Dataset with 6 clusters")
plt.xlabel("First feature")
plt.ylabel("Second feature")
plt.show()

 

class KMeans():
    def __init__(self, n_clusters=6):
        self.k = n_clusters
 
    def fit(self, data):
        """
        Fits the k-means model to the given dataset
        """
        n_samples, _ = data.shape
        # initialize cluster centers
        self.centers = np.array(random.sample(list(data), self.k))
        self.initial_centers = np.copy(self.centers)
 
        # We will keep track of whether the assignment of data points
        # to the clusters has changed. If it stops changing, we are 
        # done fitting the model
        old_assigns = None
        n_iters = 0
 
        while True:
            new_assigns = [self.classify(datapoint) for datapoint in data]
 
            if new_assigns == old_assigns:
                print(f"Training finished after {n_iters} iterations!")
                return
 
            old_assigns = new_assigns
            n_iters += 1
 
            # recalculate centers
            for id_ in range(self.k):
                points_idx = np.where(np.array(new_assigns) == id_)
                datapoints = data[points_idx]
                self.centers[id_] = datapoints.mean(axis=0)
 
    def l2_distance(self, datapoint):
        dists = np.sqrt(np.sum((self.centers - datapoint)**2, axis=1))
        return dists
 
    def classify(self, datapoint):
        """
        Given a datapoint, compute the cluster closest to the
        datapoint. Return the cluster ID of that cluster.
        """
        dists = self.l2_distance(datapoint)
        return np.argmin(dists)
 
    def plot_clusters(self, data):
        plt.figure(figsize=(12,10))
        plt.title("Initial centers in black, final centers in red")
        plt.scatter(data[:, 0], data[:, 1], marker='.', c='y')
        plt.scatter(self.centers[:, 0], self.centers[:,1], c='r')
        plt.scatter(self.initial_centers[:, 0], self.initial_centers[:,1], c='k')
        plt.show()
X = np.random.randn(10,100)
kmeans = KMeans(n_clusters=6)
kmeans.fit(X)
for data in X:
    print(kmeans.classify(data))

總結(jié)

K-Means的主要優(yōu)點:

1)原理簡單,容易實現(xiàn)

2)可解釋度較強(qiáng)

K-Means的主要缺點:

1)K值很難確定

2)局部最優(yōu)

3)對噪音和異常點敏感

4)需樣本存在均值(限定數(shù)據(jù)種類)

5)聚類效果依賴于聚類中心的初始化

6)對于非凸數(shù)據(jù)集或類別規(guī)模差異太大的數(shù)據(jù)效果不好

到此這篇關(guān)于利用Python如何實現(xiàn)K-means聚類算法的文章就介紹到這了,更多相關(guān)Python實現(xiàn)K-means聚類算法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • python中實現(xiàn)k-means聚類算法詳解
  • python實現(xiàn)鳶尾花三種聚類算法(K-means,AGNES,DBScan)
  • python基于K-means聚類算法的圖像分割
  • K-means聚類算法介紹與利用python實現(xiàn)的代碼示例
  • Python機(jī)器學(xué)習(xí)之K-Means聚類實現(xiàn)詳解
  • 在Python中使用K-Means聚類和PCA主成分分析進(jìn)行圖像壓縮
  • Python機(jī)器學(xué)習(xí)算法之k均值聚類(k-means)
  • python實現(xiàn)k-means聚類算法
  • Python用K-means聚類算法進(jìn)行客戶分群的實現(xiàn)
  • k-means 聚類算法與Python實現(xiàn)代碼

標(biāo)簽:普洱 大同 南平 林芝 寧夏 海南 漯河 盤錦

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《利用Python如何實現(xiàn)K-means聚類算法》,本文關(guān)鍵詞  利用,Python,如何,實現(xiàn),K-means,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《利用Python如何實現(xiàn)K-means聚類算法》相關(guān)的同類信息!
  • 本頁收集關(guān)于利用Python如何實現(xiàn)K-means聚類算法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    精品久久国产老人久久综合| 欧美性受xxx| 成人三级视频在线观看一区二区| 色七七影院综合| 国产欧美久久久精品免费| 精品国产无码一区二区| 日本一卡二卡在线| 影音先锋男人在线资源| 亚洲第一区色| 国产一级特黄aaa大片| 战狼4完整免费观看在线播放版| 日本不卡视频一区| 欧美性生交大片免网| 超碰精品一区二区三区乱码| 国产精品理论在线观看| 国产精品久久免费观看| 91豆麻精品91久久久久久| 亚洲免费视频一区| 国产成人亚洲精品播放器下载| 丝袜在线观看| 亚洲一区二区av在线| 不卡区在线中文字幕| 欧美国产97人人爽人人喊| 农村妇女精品一二区| 久久久另类综合| 国产大学生视频| 成人三级小说| 亚洲视频在线观看| 99久久99久久精品国产片果冰| 日本伦理一区二区三区| 久久亚洲精品中文字幕蜜潮电影| 亚洲欧美日本日韩| 精品久久久网站| 蜜臀av免费在线观看| 久久久久久久久久久久久久久久久| 9191久久久久久久久久久| 国产日韩欧美视频在线观看| 久久99精品久久久久久动态图| 欧美一级淫片丝袜脚交| 在线精品高清中文字幕| free性欧美1819hd| 久草在在线视频| 国产精品sss| 亚洲综合一区二区精品导航| 91久久精品国产91性色69| 精品国产乱码久久久久久牛牛| 国产农村妇女精品一区| 欧美一区二区在线观看视频| 九色一区二区| 蜜乳av一区二区| 北条麻妃视频在线| 欧美黑人性受xxxx精品| a级网站在线播放| 亚洲综合一区二区精品导航| 日韩欧美成人免费视频| 美州a亚洲一视本频v色道| 欧美二区观看| 麻豆一区在线| 青青草免费观看完整版高清| 户外露出精品视频国产| 欧美日韩精品在线视频| 亚洲校园欧美国产另类| 电影一区二区三区久久免费观看| caoporn视频在线| 国产欧美日韩综合精品一区二区| 日韩和欧美的一区二区| 97在线观看免费高清| 久久99国产精品免费网站| 中文精品一区二区三区| 精品中文字幕一区二区三区av| 欧美在线免费视频| 国产高潮流白浆| av手机天堂| 91久久久久久国产精品| 手机在线看片日韩| 自拍亚洲一区欧美另类| 欧美精品国产精品久久久| 经典三级久久| 日韩欧美一区二| av网站大全在线| 欧美做暖暖视频| 韩国自拍一区| 国产日韩欧美制服另类| 亚洲一区精品在线| 草草影院在线| 亚洲开发第一视频在线播放| 亚洲天堂成人在线视频| 一区精品视频| 美国一级片在线观看| 亚洲色图欧美激情| 91精品国产美女浴室洗澡无遮挡| 成人免费淫片视频软件| 人人爱人人干婷婷丁香亚洲| 不卡视频在线播放| 亚洲最大的成人av| 亚瑟在线精品视频| 日本人视频jizz页码69| 久久国产精品99精品国产| 欧美在线视频一二三| 国产精品色哟哟网站| 国产9色视频| 国产91精品对白在线播放| 色一区av在线| 午夜免费一区| 国产精品300页| 欧美日韩中文字幕综合视频| 国产一级在线免费观看| 日韩一区二区三区观看| 国产一区二区日韩精品| 亚洲欧美在线第一页| 国产69精品久久久久毛片| 国产999在线| 国产成人亚洲综合无码| 国产精品久久二区二区| 国产丝袜美腿一区二区三区| 91蜜桃网站免费观看| 嘿咻视频在线看| 特级特黄刘亦菲aaa级| 伊人精品一区二区三区| 日本熟妇成熟毛茸茸| 一起操在线播放| 蜜臀av性久久久久蜜臀av麻豆| 国产精品一区免费观看| 日韩一级免费视频| 欧美男人亚洲天堂| 91玉足脚交白嫩脚丫| 国产精品无码99re| 国产精品无码无卡无需播放器| 激情综合丝袜美女一区二区| 欧美亚洲激情| 免费在线看黄色| 男人天堂资源在线| 日韩一区二区精品视频| 国产亚洲精品成人av久久ww| 99精品在线直播| 欧美老女人在线| 97精品在线| 久久精品一本久久99精品| 久久99精品视频一区97| www.日本高清视频| 99精品久久免费看蜜臀剧情介绍| 日本一区二区三区电影| 羞羞免费视频| 日本伦理一区二区三区| 久久久久久久999精品视频| 欧美成人福利在线观看| 欧美 日韩 国产 精品| 国产麻豆免费| 久久亚洲免费视频| 亚洲国产成人私人影院| 欧美亚洲综合一区| 色综合天天综合| 国外成人在线视频网站| 欧美破处大片在线视频| 波多野结衣在线电影| 四虎精品成人免费网站| 欧美激情一二三区| 1区2区3区在线观看| 亚洲精品一区二区三区新线路| 亚洲精品日韩欧美| 亚洲毛片在线观看| 成人在线免费观看91| 日韩hmxxxx| a级片在线免费| 国产精品成人一区二区三区电影毛片| 美州a亚洲一视本频v色道| 亚洲高清免费| 国产一二三四五| 欧美三级韩国三级日本一级| 精品一区二区三区影院在线午夜| 超碰成人免费| 精品一区二区在线免费观看| 日韩大片欧美大片| 精品大片一区二区| 国产亚洲精品超碰| 欧美怡春院一区二区三区| 久久久久久久免费视频| 91午夜在线观看| 日本学生初尝黑人巨免费视频| 性欧美大战久久久久久久久| 亚洲一区欧美| 97视频色精品| 日韩在线视频播放| 91精产国品一二三| 午夜欧美不卡精品aaaaa| 亚洲18私人小影院| 国产在线电影| 中文av在线全新| 亚洲特级片在线| 狠狠躁夜夜躁人人躁婷婷91| 成人高清在线观看免费| av在线二区| 亚洲摸摸操操av| 香蕉视频免费看| 亚洲一区二区三区乱码aⅴ蜜桃女| 亚洲精品乱码久久久久久日本蜜臀| 777午夜精品免费视频| 成人黄色网免费| 精品少妇theporn| 蜜桃av久久久亚洲精品| 国产探花在线免费观看| 久久久久综合网| 国产理论片免费观看| 女人体1963| а√天堂资源在线| 欧美热在线视频精品999| 三级短视频在线| 毛片精品免费在线观看| 日本人妻一区二区三区| 欧美性受xxxx黑人猛交| 亚洲va久久久噜噜噜无码久久| 夜夜春亚洲嫩草影视日日摸夜夜添夜| 精品99在线视频| 激情综合中文娱乐网| 欧美午夜在线| 天天躁日日躁aaaxxⅹ| 精品少妇人妻av免费久久洗澡| 久久人体大尺度| 欧美sm精品调教视频| 国产夫妻在线视频| 欧美极品aⅴ影院| 伊人狠狠色丁香综合尤物| 亚洲精品久久久久久国| 欧美美乳视频网站在线观看| 欧美视频在线观看视频| 影音先锋国产精品| 欧美日韩亚洲国产成人| 99久久精品免费看国产一区二区三区| 丝袜足控免费网站xx网站| 亚洲成人激情在线| 日韩中文字幕影院| 日本三级电影网站| 偷窥国产亚洲免费视频| 欧美一乱一性一交一视频| 狠狠操视频网站| 欧美一二三区视频| 超碰免费在线播放| 麻豆视频成人| 亚洲色图图片区| hitomi一区二区三区精品| 超碰精品在线| 亚洲成人久久久久| heyzo中文字幕在线| 亚洲区在线播放| 午夜免费播放观看在线视频| a级片国产精品自在拍在线播放| 免费观看成年人视频在线观看| 亚洲人在线观看视频| 国产精品久久久久久久成人午夜| 国产成人精品视频在线| 麻豆传媒在线免费| 公交车强行挺进岳身体| 国产激情久久久久久熟女老人av| 日本一卡二卡四卡精品| 国产精品亚洲а∨天堂免在线| 国产三级欧美三级日产三级99| 国产亚洲欧美精品久久久久久| 午夜性爽视频男人的天堂| 国产午夜精品一区二区三区嫩草| 无码人妻丰满熟妇精品区| 亚洲成熟少妇视频在线观看| 亚洲精品视频中文字幕| 偷拍视频一区二区| 久久亚洲免费视频| 日韩精品免费综合视频在线播放| 欧美在线不卡区| 中文字幕精品一区二| 亚洲欧美日韩国产成人| 欧美午夜不卡在线观看免费| 欧美三级视频网站| 猛性xxxxx| 黄页网站免费观看| 精品久久久久久无码人妻| 91禁男男在线观看| a级大片免费看| 波多野结衣爱爱| 亚洲天堂一区二区| 久久国产精品久久w女人spa| 日本国产一区| 国产91精品黑色丝袜高跟鞋| 亚洲av综合色区无码另类小说| 国产成人久久精品77777综合| 国产99视频精品免视看7| 人禽交欧美网站免费| 精品一区二区三区四区| 国产精品丝袜黑色高跟| 国产原创欧美精品| 国产精品国产三级国产aⅴ无密码| 国产精品99久久久久久宅男| 成人天堂av| 视频一区欧美日韩| 国产激情在线看| 中文字幕在线观看二区| 国产精品免费在线视频| 久久夜色精品国产亚洲aⅴ| 激情五月少妇a| 熟女俱乐部一区二区视频在线| 中文字幕美女视频| 久久久久久无码精品大片| 五月丁香综合缴情六月小说| 国内一区二区三区精品视频| 2018av在线| 亚洲精品66| 欧美一区二区三区爱爱| 精品综合久久久久| 欧美在线观看在线观看| 亚洲一区二区三区蜜桃| 色啦啦av综合| chien国产乱露脸对白| 老司机精品视频在线| 亚洲手机在线观看| 视频三区在线观看| 国产真实乱子伦精品视频| 欧美岛国激情| 久久激情一区| 国产精品久久久久久久久久久不卡| 欧美日韩水蜜桃| 国产a精品视频| 久久亚洲国产精品成人av秋霞| 欧美丰满少妇xxxxx高潮对白| 免费全黄无遮挡裸体毛片| 久久99精品久久久久久国产越南| 少妇精品久久久一区二区三区| 欧美国产日韩中文字幕在线| 91精品免费在线观看| 一区二区三区在线观看视频| 午夜免费福利在线| 欧美日韩伦理一区二区|