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

  • 大小: 5KB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發布日期: 2021-05-19
  • 語言: C/C++
  • 標簽: SVM??

資源簡介

該C++代碼,有助于理解SVM算法,通俗易懂,附帶兩個標簽類,成功實現正確分類,。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

資源截圖

代碼片段和文件信息

#define?_CRT_SECURE_NO_DEPRECATE
#include
#include
#include
#include
#include
#include
#include
#define?feature_num?15?
#define?lable_num?20
float?data_mat[lable_num][feature_num];
float?res_mat[lable_num];
using?namespace?std;


void?main(void)
{
//int?file(void)
//{
FILE?*f1*f2;
int?i?=?0?j?=?0k=0;
f1?=?fopen(“bedroom.txt“?“r“);
f2=fopen(“lable.txt““r“);
while(!feof(f1))
{
if(j?!=?feature_num-1)
fscanf(f1?“%f?“?&data_mat[i][j++]);//注意此處有個空格
else
{
fscanf(f1?“%f“?&data_mat[i][j]);
j?=?0;
++i;???
}
}
while(!feof(f2))
fscanf(f2?“%f?“?&res_mat[k++]);
fclose(f1);
fclose(f2);

int?t;
double?y[20]?=?{0};??//對x的分類結果1或-1

double?alphas[lable_num]={0};
double?a_y[lable_num]={0};???//a[i]*y[i]
double?w[feature_num]={0};
double?b=0;
double?aiold?=?0ajold?=?0ajnew?=?0ainew?=?0;
double?HL;
double?c=0.6Ei=0Ej=0;
double?tolerance=1e-3;
int?itermaxIter=400alphapairsChanged?=?0;
double?limit1limit2etabinewbjnew;??????????//HL的上下限
double?K_ij=0K_ii=0K_jj=0K_ji=0;?????????//2K12-K11-K22
//ofstream?f4;
//f4.open(“result.txt“);
srand(unsigned(time(0)));
iter=0;
while(iter {
Ei=0Ej=0;
K_ij=0;
K_ii=0;
K_jj=0;
K_ji=0;
alphapairsChanged?=?0;

for(i=0;i {
for(k=0;k a_y[k]=alphas[k]*res_mat[k];///a[i]*y[i]
for(t=0;t {
w[t]=0;
}
for(k=0;k {

for(t=0;t {
w[k]+=a_y[t]*data_mat[t][k];
}
}
Ei=0Ej=0;
for(k=0;k {
Ei+=w[k]*data_mat[i][k];????//線性核求Ei
}
Ei=Ei+b;
Ei=Ei-res_mat[i];
if(?((res_mat[i]*Ei??tolerance)?&?(alphas[i]?>?0))){
while(1)?????????????????????//隨機選取與i不同的j
{
j=int(rand()%lable_num);
if(j!=i)
break;
}
for(k=0;k {
Ej+=w[k]*data_mat[j][k];???//求Ej,這里使用線性核
}
Ej=Ej+b;
Ej=Ej-res_mat[j];
aiold=alphas[i];
ajold=alphas[j];
limit1=ajold-aiold;
limit2=aiold+ajold;
if(res_mat[i]!=res_mat[j])
{
if(limit1>0)
{
L=limit1;
H=c;
}
else
{
L=0;
H=c+limit1;
}
}
else
{
if(limit2>c)
{
L=limit2-c;
H=c;
}
else
{
L=0;
H=limit2;
}
}
if(H==L)
continue;
K_ij=0;
K_ii=0;
K_jj=0;
K_ji=0;
for(k=0;k {
K_ij+=data_mat[i][k]*data_mat[j][k];
K_ii+=data_mat[i][k]*data_mat[i][k];
K_jj+=data_mat[j][k]*data_mat[j][k];
K_ji+=data_mat[j][k]*data_mat[i][k];
}
eta=2*K_ij-K_ii-K_jj;?//w(a2)的2階導數
if(eta>=0)
continue;
ajnew=ajold-res_m

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????4601??2017-08-23?10:01??SVM算法\SVM.cpp
?????文件????????3018??2017-08-01?15:31??SVM算法\bedroom.txt
?????文件????????3020??2017-08-01?22:41??SVM算法\bedroom1.txt
?????目錄???????????0??2017-09-04?11:46??SVM算法\

評論

共有 條評論