91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 3KB
    文件類型: .m
    金幣: 1
    下載: 0 次
    發布日期: 2021-06-04
  • 語言: Matlab
  • 標簽: 聚類??

資源簡介

這是k-means的MATLAB程序,主要用于各種數據的聚類等情況

資源截圖

代碼片段和文件信息

function?[?resXresY?resZrecord]?=?FunK_mean3D(?xyzk?)
%?功能:
%?????實現三維空間k-mean聚類算法
%?輸入:
%?????三維數據,分別用xyz兩個一維向量代表兩個維度
%?????k?是分成的類別的數量
%?輸出:
%?????k行的兩個矩陣
%?????對應同樣的第n行,存放著第n類的所有元素
%?????record:?記錄著每一行的有效元素的個數
wine=xlsread(‘C:\Users\Administrator\Desktop\11.xls‘‘A1:C20‘)

%wine=mapminmax(wine);?%訓練數據標準化
%wine=zscore(wine);?%測試數據標準化
%amax?=?max(max(A));?%求矩陣中最大數
%amin?=?min(min(A));?%求矩陣中最小數
%wine?=?(A-amin)/(amax-amin);
x=wine(:1);
y=wine(:2);
z=wine(:3);
k=4;
????j?=?1;
????%?下面是預分配一些空間
????%?seedX?和?seedY?中存放著所有種子
????seedX?=?zeros(1k);
????seedY?=?zeros(1k);
????seedZ?=?zeros(1k);
????oldSeedX?=?zeros(1k);
????oldSeedY?=?zeros(1k);
????oldSeedZ?=?zeros(1k);
????resX?=?zeros(klength(x));
????resY?=?zeros(klength(x));
????resZ?=?zeros(klength(x));
????%?用來記錄resX中每一行有效元素的個數
????record?=?zeros(1k);?
????for?i?=?1:k?%?產生k個隨機種子?注意:?隨機種子是來自元素集合
????????seedX(i)?=?x(round(rand()*length(resX)));
????????seedY(i)?=?y(round(rand()*length(resX)));
????????seedZ(i)?=?z(round(rand()*length(resX)));
????????%?為保證種子不重疊
????????if?(i?>?1?&&?seedX(i)?==?seedX(i-1)?&&?seedY(i)?==?seedY(i-1)?&&?seedZ(i)?==?seedZ(i-1))
????????????i?=?i?-1;?%?重新產生一個種子
????????end
????end

????while?1
????????disp([‘jack?is?here‘])
????????record(:)?=?0;?%?重置為零
????????resX(:)?=?0;
????????resY(:)?=?0;
????????resZ(:)?=?0;
????????for?i?=?1:length(x)?%?對所有元素遍歷
????????????%?下面是判斷本次元素應該歸為哪一類,這里我們是根據歐幾里得距離進行類別判定
????????????%?k-mean算法認為元素應該歸為距離最近的種子代表的類
????????????distanceMin?=?1;
????????????for?j?=?2:k
??????????????

評論

共有 條評論