/**
* softMax分类
* @param soft_in输入数据
* @param θtheta训练参数
* @return label[n][1]
* @author 后一个X前一个:θ[n][m] * x[m][1]
* n个标签
*/
public static double[] MysoftMax(double[][] theta,double[] soft_in) {
if (theta[0].length != soft_in.length) {
System.out.println("输入矩阵不匹配,无法进行矩阵运算");
return null;
}
double[] result = new double[theta.length];//返回标签
double[] value = new double[theta.length];// 分子
double denominator = 0.0;//分母
for (int i = 0; i < result.length; i++) {
double temValue = 0.0;
for (int j = 0; j < soft_in.length; j++) {
temValue += theta[i][j]*soft_in[j];
}
value[i] = Math.pow(Math.E, temValue);
denominator +=Math.pow(Math.E, temValue);
}
for (int i = 0; i < result.length; i++) {
result[i] = value[i]/denominator;
}
return result;
}
点击查看更多内容
1人点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦