使用DeepLearning4J进行K-Means聚类

官网示例路径https://github.com/deeplearning4j/deeplearning4j/blob/bca1df607f6e58ae73baa8e684130bfa7ad8c2e3/deeplearning4j-nearestneighbors-parent/nearestneighbor-core/src/test/java/org/deeplearning4j/clustering/kmeans/KMeansTest.java

代码

    @Test
    public void testKMeans() {
        //设置一个底层生成数值,后面的方法产生的数相等
        //如Nd4j.randn(5, 5),产生5行5列的矩阵,不管运行多少次该test用例,均生成相等的5行5列矩阵
        Nd4j.getRandom().setSeed(7);
        //声明一个KMeans聚类对象,参数分别是 最终聚类的类别数量,迭代次数,距离函数  距离函数的取值为(sum,max,min,norm1,norm2,prod,std,var,euclidean,cosine,cosinesimilarity,manhattan,mmul,tensorMmul)具体可参照org.nd4j.linalg.api.ops.factory.DefaultOpFactory
        KMeansClustering kMeansClustering = KMeansClustering.setup(5, 5, "euclidean");
        //张量矩阵生成KMeans的点对象
        List<Point> points = Point.toPoints(Nd4j.randn(5, 5));
        ClusterSet clusterSet = kMeansClustering.applyTo(points);
        //将第一个点对象带入进行分类,可得到对象pointClassification,该对象getCenter得到该点所属的类别
        PointClassification pointClassification = clusterSet.classifyPoint(points.get(0)); //可以使用classifyPoint(points.get(0),false)使center中心店不进行更新移动
        System.out.println(pointClassification);
    }
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值