機器學習 KMeans學習筆記

2021-07-10 13:40:03 字數 1606 閱讀 8603

機器學習:kmeans學習筆記

# -*- coding: utf-8 -*-

"""spyder editor

this is a temporary script file.

"""from numpy import *

def loaddataset(filename):

file=open(filename)

datamat=

for line in file.readlines():

curline=line.strip().split('\t')

floatline=map(float,curline)//這裡使用的是map函式直接把資料轉化成為float型別

return datamat

def disteclud(point1,point2)://pwer(x,2)計算x的平方

return sqrt(sum(power(point1-point2,2)))

//隨機的產生中心點

def createrandcenter(dataset,k):

n=shape(dataset)[1]

centerpoint=mat(zeros((k,n)))//需要使用相乘的都定義成為矩陣

for i in xrange(n)://這裡在給賦值的時候是直接對每列資料操作

mindata=min(dataset[:,i])

maxdata=max(dataset[:,i])

skipnum=float(maxdata-mindata)

centerpoint[:,i]=mindata+skipnum*random.rand(k,1)

return centerpoint

//lmeans函式,找出當前的每乙個點距離centor中的哪個點在最近

def kmeans(dataset,k,distmesns=disteclud,createcenter=createrandcenter):

m=shape(dataset)[0]

clusterassment=mat(zeros((m,2)))//第一位表示當前點屬於哪個center,第二個表示距離大小

centorpoint=createcenter(dataset,k)//中心點

clusteredchanged=true

while clusteredchanged://直到不再發生改變

clusteredchanged=false

for i in xrange(m):

mindist=inf;minindex=-1

for j in xrange(k):

distij=distmesns(dataset[i,:],centorpoint[j,:])

if distij

import matplotlib.pyplot as plt

def showcluster(dataset, k, centroids, clusterassment):

m=shape(dataset)[0]

print m

mark = ['or', 'ob', 'og', 'ok', '^r', '+r', 'sr', 'dr', '

學習筆記 機器學習實戰 Kmeans

kmeans演算法注釋版,新手小白,如有錯誤,還請不吝指教 kmeans演算法 def kmeans dataset,k dataset mat dataset 轉換成mat型別 m shape dataset 0 獲取資料集的行數 第一列記錄資料集的類別,第二列記錄資料集到聚類中心的距離 clus...

機器學習筆記 k means演算法

k means是一種無監督的聚類演算法,也就是不給標籤,演算法自動來進行分類,最終分成k個簇。輸入 k 簇的個數 訓練集 無標籤的樣本集合 輸出 k個簇 k應該比樣本數量小 1 隨機初始化k個均值向量 代表k個簇的中心 可以隨機選取k個訓練樣本作為初始均值向量。2 開始迴圈 1 對每個樣本進行遍歷,...

機器學習 kmeans

1 手寫kemeans 流程 手寫 f 桌面 rna seq1 leetcode 10 面試真題 6 位元組跳動 手寫kmeans.py 2 k 如何確定 t sne視覺化和手肘法,k值所決定的是在該聚類演算法中,所要分配聚類的簇的多少,kmeans 演算法對初始值敏感,相同的k,選的點不同,會影響...