演算法學習Task5

2021-10-01 18:50:15 字數 1444 閱讀 3255

k_means演算法

聚類與分類的區別,分類的目標事先已知,而聚類是一種無監督學習,目標未知

具體方法有距離、密度、層次、網格、圖論

k_means演算法基於距離

1、確定簇的個數k,可以通過經驗以及交叉檢驗可以

2、初始選取k個中心點,採用k_means++,加速收斂,即選擇樣本點中任意乙個作為第乙個簇的中心,計算其他點到改點距離,取其中最遠的點作為第二個簇的中心

3、迭代中心點,直至中心點幾乎不發生變化即可停止

演算法**如下:

function [ c] = k_meansfun( data,k)

%data為資料集,要求乙個樣本點各特徵為一行,且已經標準化

%k為簇的個數

mu1=;mu2=;

ticc=cell(k,2);%初始化簇,第一列為該簇中的點集第二列為該簇中的中心值

i=randi(size(data,1),1,1);

%確定初始簇的中心值,使用k_means++,加快迭代收斂次數

mu=data(i,:);

c=mu;

mu1(1,:)=mu

for j=2:k

d=;for i=1:size(data,1)

d(i)=norm(data(i,:)-mu)

end[m,n]=max(d);

mu=data(n,:);

c=mu;

mu1(j,:)=mu;

endtoc

%迭代,確定最終簇

dete=21;

while dete>0.01

for v=1:k

c=;end

for i=1:size(data,1)

d=;for j=1:k

d(j)=norm(data(i,:)-c);

end[m,n]=min(d);

c=[c;data(i,:)];

endfor i=1:k

c=mean(c);

mu2(i,:)=c;

enddete=norm(mu1-mu2)

mu1=mu2;

endend

主函式:

load 'k_mean.txt'

[m,n]=size(k_mean);

for i=1:n

[max,v]=max(k_mean(:,i));

[min,v]=min(k_mean(:,i));

for j=1:m

k_mean(j,i)=k_mean(j,i)/(max-min);

end

end[c]=k_meansfun(k_mean,5);

Task5 學習筆記

模型融合是對多種調參完成的模型以某種方式進行融合,進而提公升結果的準確性。其一般來說有以下幾種方法 簡單加權融合 對於回歸問題,簡單加權融合一般包括對模型進行算術平均或者幾何平均進行融合 對於分類問題可以通過投票方式進行融合,包括軟投票與硬投票,區別在於軟投票是在硬投票的基礎上賦予了不同的權重 對於...

TASK 5 模型融合

task 5 模型融合 總結自 datawhale 零基礎入門資料探勘 task 5 模型融合 ml67 1 stacking 是用初始訓練資料學習出若干個基學習器後,將這幾個學習器的 結果作為新的訓練集,來學習乙個新的學習器。2 結合策略 如何將個體學習器結合在一起使用的方法。分類可以使用投票法。...

Task5 模型整合

1.整合學習方法 假設你有許多基礎分類器 簡單的分類規則 則組合 這些分類規則可能是乙個好主意,可能會比單個規則獲得 更高的精度 選擇基礎分類器時候往往主要考慮的是其簡單性,而非精 度 基礎分類器應該對總體中的一部分不同個體是精確的,他 們組合起來可以有效處理所有個體 即互為補充 基礎分類器之間的差...