求k近邻法实例,有的给我发一个,matlab程序。求高手啊!

求k近邻法实例,有的给我发一个,matlab程序。求高手啊!,第1张

大奎!哥来要铅则旦分!盯扮

发个算法吧,以免口舌,VS2008C#算法代码,刚学C#,代码有些粗糙,绝对好使,想要槐扰全部代码与本人联系。呵呵~: )

public void knnsf(float PH,float JD,float NH4,float COD,float BOD,float SS,float XTD)

{

double[,] kn = new double[81, 2]

int a = 0, b = 0, c = 0

//计算欧氏距离

for (int i = 0i <27i++ )

{

kn[i, 0] = Math.Sqrt( Math.Pow(class1[i, 1] - PH, 2) + Math.Pow(class1[i, 2] - JD, 2) + Math.Pow(class1[i, 3] - NH4, 2) +

Math.Pow(class1[i, 4] - COD, 2) + Math.Pow(class1[i, 5] - BOD, 2) + Math.Pow(class1[i, 6] - SS, 2) +

Math.Pow(class1[i, 7] - XTD, 2))

kn[i, 1] = 1

kn[i+27,0] = Math.Sqrt(Math.Pow(class2[i, 1] - PH, 2) + Math.Pow(class2[i, 2] - JD, 2) + Math.Pow(class2[i, 3] - NH4, 2) +

Math.Pow(class2[i, 4] - COD, 2) + Math.Pow(class2[i, 5] - BOD, 2) + Math.Pow(class2[i, 6] - SS, 2) +

Math.Pow(class2[i, 7] - XTD, 2))

kn[i+27, 1] = 2

kn[i+54,0] = Math.Sqrt(Math.Pow(class3[i, 1] - PH, 2) + Math.Pow(class3[i, 2] - JD, 2) + Math.Pow(class3[i, 3] - NH4, 2) +

Math.Pow(class3[i, 4] - COD, 2) + Math.Pow(class3[i, 5] - BOD, 2) + Math.Pow(class3[i, 6] - SS, 2) +

Math.Pow(class3[i, 7] - XTD, 2))

kn[i+54, 1] = 3

}

//选择排序法

for (int i = 0i <81i++ )

{

int k = 0

double mintmp = kn[i, 0],clas=kn[i,1]

for (int j = i+1j <81j++)

{

if (mintmp >kn[j, 0])

{

mintmp = kn[j, 0]

clas = kn[j, 1]

k = j

}

}

kn[k, 0] = kn[i, 0]

kn[k, 1] = kn[i, 1]

kn[i, 0] = mintmp

kn[i, 1] = clas

}

//选择K=30个近邻

for (int k = 0k <3k++)

{

if (kn[k, 1] == 1) a++

if (kn[k, 1] == 2) b++

if (kn[k, 1] == 3) c++

}

//统计近邻类别

if (a >b &&a >c)

{

classes = 1

}

if (b >a &&b >c)

{

classes = 2

}

if (c >b &&c >a)

{

classes = 3

}

}

您好,Matlab不仅仅只有自带的BP算法,它还提供了一系列机器学习算法,包括支持向量机(SVM),K近邻(KNN),决策树(DT),随机森林(RF),AdaBoost,梯度提升(GBM),神经网络(NN),以及其他一些机器大谈裂学习算法。此外,Matlab还提供了一些深度学习算法,如卷积神经网络(CNN),循环神经网络(RNN),长短期记忆(LSTM),受侍游限玻尔兹曼机(RBM),自动编码器(AE)等。因此,Matlab不仅仅只有BP算法,它还提供了一系列机器学习和深度学习算法,可以满足您的不滚闭同需求。

matlab中用最小二乘拟闹团合的常用函数有polyfit(多项式拟合)、nlinfit(非线性拟合)以及regress(多元线性回归)。自变量有2个或液拦橘以上时,应变量一个,可以使用的有nlinfit和regress,线性时用regress,非线性时用nlinfit。对于进阶matlab使用者还有更多的选择,如拟衡和合工具箱、fit函数、interp系列插值拟合等等。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12353533.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存