西电大数据挖掘大作业kmeans和kmedoidsWord文档下载推荐.docx
- 文档编号:22189689
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:18
- 大小:811.64KB
西电大数据挖掘大作业kmeans和kmedoidsWord文档下载推荐.docx
《西电大数据挖掘大作业kmeans和kmedoidsWord文档下载推荐.docx》由会员分享,可在线阅读,更多相关《西电大数据挖掘大作业kmeans和kmedoidsWord文档下载推荐.docx(18页珍藏版)》请在冰豆网上搜索。
%sample——样本集;
%k——聚类数目;
%输出:
%y——类标(从0开始)
%cnew——聚类中心
%n——迭代次数
function[ycnewn]=k_means(sample,k)
[NV]=size(sample);
%N为样本的个数K为样本的维数
y=zeros(N,1);
%记录样本类标
dist=zeros(1,k);
rand_num=randperm(N);
cnew=(sample(rand_num(1,1:
k),:
));
%随机初始化聚类中心
cold=zeros(k,V);
n=0;
while(cold~=cnew)
cold=cnew;
n=n+1;
%记录迭代次数
%对样本进行重新分类
fori=1:
N
forj=1:
k
if(V==1)
dist(1,j)=abs(sample(i,:
)-cold(j,:
else
dist(1,j)=norm(sample(i,:
end
fors=1:
if(dist(1,s)==min(dist))
y(i,1)=s-1;
%更新聚类中心
cnew=zeros(k,V);
flag=zeros(k,1);
fori=1:
if(y(I,1)==j-1)
flag(j,1)=flag(j,1)+1;
cnew(j,=cnew(j,+sample(I,;
end
forj=1:
cnew(j,=cnew(j,/flag(j,1);
k_means_waveform:
clear;
clc;
%%%%%%%%%数据读入%%%%%%%
data=load('
G:
\西电\2014大三下\大作业\DataMining\k_means\waveform.data'
);
[NK]=size(data);
%数据集的数目
data0=zeros(1,K);
data1=zeros(1,K);
data2=zeros(1,K);
if(data(i,K)==0)
data0=cat(1,data(i,:
),data0);
elseif(data(i,K)==1)
data1=cat(1,data(i,:
),data1);
data2=cat(1,data(i,:
),data2);
sample=cat(1,data0(1:
100,:
),data1(1:
),data2(1:
label=sample(:
K);
%样本的正确类标
sample=sample(:
1:
K-1);
%样本集
k=3;
%聚类中心的数目
[ycnewn]=k_means(sample,k);
%%%%%%%%%%正确率统计%%%%%%%
sum=zeros(1,6);
if(y(i,1)==label(i,1))
sum(1,1)=sum(1,1)+1;
if((y(i,1)+label(i,1))==2)
sum(1,2)=sum(1,2)+1;
if(((y(i,1)==0)&
&
(label(i,1)==0))||((y(i,1)==1)&
label(i,1)==2)||((y(i,1)==2)&
label(i,1)==1))
sum(1,3)=sum(1,3)+1;
(label(i,1)==1))||((y(i,1)==1)&
label(i,1)==0)||((y(i,1)==2)&
label(i,1)==2))
sum(1,4)=sum(1,4)+1;
label(i,1)==0))
sum(1,5)=sum(1,5)+1;
(label(i,1)==2))||((y(i,1)==1)&
sum(1,6)=sum(1,6)+1;
sum=sum/N;
creatrate=max(sum);
disp('
循环次数:
'
disp(n);
聚类中心为:
disp(cnew);
正确率为:
disp(creatrate);
k_means_picture:
I1=imread('
\西电\2014大三下\大作业\DataMining\k_means\lena.jpg'
I2=rgb2gray(I1);
%转化为灰度图像
I=im2double(I2);
[numv]=size(I);
sample=reshape(I,v*num,1);
%样本集
k=2;
%%%%%%%%v%%%%%%%%
I3=sample;
if(cnew(1,1)>
=cnew(2,1))
F0=255;
F1=0;
else
F0=0;
F1=255;
num*v
if(y(i,1)==0)
I3(i,1)=F0;
I3(i,1)=F1;
I3=reshape(I3,num,v);
figure
(1)
subplot(1,3,1);
imshow(I1);
title('
原图像'
subplot(1,3,2);
imshow(I2);
灰度图像'
subplot(1,3,3);
imshow(I3);
二值化图像'
k_medoids实验报告
(1)随机选择k个对象作为初始的代表对象;
(2)repeat
(3)指派每个剩余的对象给离它最近的代表对象所代表的簇;
(4)随意地选择一个非代表对象Orandom;
(5)计算用Orandom代替Oj的总代价S;
(6)如果S<
0,则用Orandom替换Oj,形成新的k个代表对象的集合;
(7)until不发生变化
k_medoids:
%%%%%%%%k_medoids%%%%%%%%
%%%%%%%%%º
函数说明%%%%%%%%%
%输入:
%sample——数据集
%k——聚类数目;
%y——类标;
%med——聚类中心点
function[ymed]=k_medoids(sample,k)
%N为样本数目V为样本为数
%聚类中心的随机初始化
rbowl=randperm(N);
med=sample(rbowl(1,1:
temp=zeros(N,2);
index=rbowl(1,k);
Eold=0;
Enew=1000;
while(abs(Enew-Eold)>
0.001)
%将所有样本分配到最近的代表点
)-med(j,:
temp(i,1)=min(dist);
if(dist(1,s)==temp(i,1))
temp(i,2)=s;
y=temp(:
2);
Eold=sum(temp(:
1));
%随机的选择一个非代表点,生成新的代表点集合
index=index+1;
med_temp=med;
E=zeros(1,k);
med_temp(j,:
)=sample(index,:
fort=1:
dist(1,t)=norm(sample(i,:
)-med_temp(t,:
E(1,j)=sum(temp(:
Enew=min(E);
if(E(1,t)==Enew)
obest=t;
if(Enew<
Eold)
med(obest,:
Enew=Eold;
k_medoids_waveform:
%%%%%%%%%Ê
ý
¾
Ý
¶
Á
È
ë
%%%%%%%
G:
\西电\2014大三下\大作业\DataMining\k_medoids\waveform-+noise.data'
%Ñ
ù
±
µ
Ä
Õ
·
À
à
ê
¼
¯
%%%%%%%%%%k_medoids%%%%%%%
[ymed]=k_medoids(sample,k);
%%%%%%%%%%正确率统计Æ
y(i,1)=y(i,1)-1;
Û
Ö
Ð
Î
ª
£
º
disp(med);
Â
Ê
k_medoids_picture:
I0=imread('
\西电\2014大三下\大作业\DataMining\k_medoids\lena.jpg'
D=0.001;
I1=imnoise(I0,'
gaussian'
0,D);
%加噪声
%转化为灰度图像
%Ñ
%¾
¿
%%%%%%%%图像显示¾
%%%%%%%%
if(med(1,1)>
=med(2,1))
if(y(i,1)==1)
subplot(1,4,1);
imshow(I0);
subplot(1,4,2);
加噪声后的图像'
subplot(1,4,3);
subplot(1,4,4);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电大 数据 挖掘 作业 kmeans kmedoids