typedef
double dtype;
主要介面:
void kmeans(const
vector
> &d,int k,string distype,vector
> &kset,map
&category,vector
> &kcenter)
引數:vector
> &d: 資料矩陣mxn
int k:聚類類別數目
string distype:距離類別,"sqeuclidean"表示歐式距離,"cosine"表示余弦距離,"hamming"表示海明距
vector
> &kset:初始化k個中心
map &category:返回的類別號
vector
> &kcenter:返回的類別中心
double sse(const
vector
> &matrix,const
vector
> &kcenter,map
&category,string distype,map
&everysse)
返回總的誤差平方和,map
&everysse返回每個類的誤差平方和
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
intconst n = 1000;
intconst eps = 1e-3;
using
namespace
std;
typedef
double dtype;
typedef
vector
::size_type vt;
double disfun(const
vector
&a,const
vector
&b,string distype)
if(distype=="cosine")
dis_sum = 1-in_product*1.0/(sqrt(len_a)*sqrt(len_b));
}if(distype=="hamming")
dis_sum = count*1.0/a.size();
}return dis_sum;
}vector
random_choosek(const
int n,int k)
}for(int &i:vec)cout
<"->";
cout
<<"random choose k over"
} bool nochange(const
vector
> &kcenter,const
vector
> &prekcenter)
return
true;
}vector
sum_vector(const
vector
&a,const
vector
&b)void setzero(vector
&vec)
}void alterkcenter(const
vector
> &d,vector
> &kcenter,const
vector
> &kset,string distype)
}}void kmeans(const
vector
> &d,int k,string distype,vector
> &kset,map
&category,vector
> &kcenter)
cout
<<"kset"
<<"kset over"
int count=0;
while(!flag)
return totalsse;
}void s**eresult(const
vector
> &matrix,vector
> &kset)
matrix.push_back(row);
all++;
}//printmatrix(matrix);
vector
> kset;
vector
> kcenter;
map category;
string st("hamming");
kmeans(matrix,30,st,kset,category,kcenter);
s**eresult(matrix,kset);
map everysse;
cout
:: const_iterator it=everysse.begin();
while(it!=everysse.end())
Css Position定位 簡易版本
準備前的知識 定位只對塊級起作用。如div,p等元素是塊級元素,如果是內聯元素則可以先變成塊級元素,display block即可。開始講解 定位共四種 static,fixed,relative,absolute.第一種 static為div預設,top,left,bottom,right無用。第...
簡易單鏈表模版(暫定最終版本)
自己寫的乙個單鏈表模版,模版的實現和定義是不可以分開兩個檔案寫的 和平時寫的類的不太一樣 這個要注意,一開始沒注意到這個 就出現了那個最討厭的 unresolve external symbol 的錯誤 下面是 功能是一些比較常見的功能 這個是經過修改完善後的乙個最終版本,以後有新想法 會再新增進去...
軟體版本號簡易控制規範
個人分類 研發管理和規範 版本控制規範用於確定軟體配置項的命名與版本號管理的規則,以確保清楚地 唯一地標識軟體的各個組成部分及其狀態,並建立這些部分之間的一致性關係。版本控制的範圍包括 源 用計算機程式語言編寫的源 檔案 文件 需求規格說明書 總體設計說明書 資料庫設計說明書 詳細設計說明書等描述軟...