`
strayly
  • 浏览: 97402 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

spark进行svd降维和kmeans聚类

 
阅读更多
import jieba
import jieba.analyse
import jieba.posseg as pseg
from pyspark import SparkConf, SparkContext,SQLContext
from pyspark.ml.feature import Word2Vec,CountVectorizer

import pandas as pd
from pyspark.ml.clustering import KMeans
from pyspark.ml.feature import HashingTF, IDF, Tokenizer
from pyspark.mllib.linalg.distributed import RowMatrix
from pyspark.sql import Row
from pyspark.ml.feature import VectorAssembler
from pyspark.mllib.util import MLUtils

conf = SparkConf().setAppName("cluster")
sc = SparkContext(conf=conf)
sqlContext=SQLContext(sc)
#my_df 加载数据
spark_df = sqlContext.createDataFrame(my_df)

#计算tfidf
cv = CountVectorizer(inputCol="words", outputCol="rawFeatures")
cvmodel =cv.fit(spark_df);
cvResult= cvmodel.transform(spark_df);
idf = IDF(inputCol="rawFeatures", outputCol="features")
idfModel = idf.fit(cvResult) 
cvResult = idfModel.transform(cvResult)


ddf = MLUtils.convertVectorColumnsFromML(cvResult, 'features')
ddf=ddf.select('features').rdd.map(lambda row : row[0])

mat = RowMatrix(ddf)
#奇异值分解
svd = mat.computeSVD(k=60, computeU=True)
#转成dataframe格式
svd_u = svd.U.rows.map(lambda row : row.tolist())
svd_df = sqlContext.createDataFrame(svd_u)
#kmeans聚类
kmeans = KMeans().setK(60).setSeed(1)
vecAssembler = VectorAssembler(inputCols=svd_df.schema.names, outputCol='features')
svd_df = vecAssembler.transform(svd_df)
#聚类结果
c_result = svd_df.select('features')
model = kmeans.fit(c_result)
results = model.transform(svd_df)
分享到:
评论

相关推荐

    svd降维与kmeans聚类

    综上所述,SVD降维和K-means聚类都是处理大规模数据集时非常有用的技术。SVD可以帮助我们有效地降低数据维度,减少计算资源的需求,而K-means则能够帮助我们将数据集划分为多个有意义的簇,从而发现数据内在的结构。...

    57Spark MLlib之分类与聚类.docx

    在本文中,我们将深入探讨 Spark MLlib 中的分类、聚类以及相关的数据预处理技术。 1. Spark MLlib 定义: Spark MLlib 是一个分布式机器学习库,它构建在 Spark Core 上,旨在提供高效且易于使用的机器学习算法。...

    K-Means文本聚类python实现

    本主题主要介绍如何使用Python实现K-Means算法对文本数据进行聚类。K-Means算法是一种简单而有效的聚类算法,适用于大数据集的处理,它通过迭代找到最佳的类别中心(质心)来划分数据。 首先,我们需要对文本数据...

    动态聚类MATLAB 代码

    在动态聚类过程中,可能先用SVD对数据进行降维处理,然后再应用聚类算法。 文件名为“动态聚类”的压缩包可能包含了MATLAB脚本或函数,用于实现动态聚类的过程。这些文件可能包括以下部分: 1. 数据读取:导入数据...

    谱聚类算法MATLAB

    6. **K-means或者谱切割**:利用这些特征向量进行K-means聚类或直接进行谱切割,得到最终的聚类结果。 谱聚类算法的优势在于它能够处理非凸形状的聚类,并且对于数据的分布没有严格的假设。然而,选择合适的相似性...

    基于Kmeans算法、MBSAS算法及DBSCAN算法的newsgroup18828文本聚类器

    基于Kmeans算法、MBSAS算法及DBSCAN算法的newsgroup18828文本聚类器 程序运行方法:用eclipse打开工程,并将newsgroup文档集解压到 F:\DataMiningSample\orginSample目录下,同时在F:\DataMiningSample\ 下建好如...

    C++ 奇异值分解 SVD 文本聚类 文本分类

    C++ 奇异值分解 可调用矩阵计算工具eigen,但运行速度太慢。... A=UKV',svdcmp.c计算的对焦矩阵K不是按从大到小排序,该代码已经做了调整,并且v'也是对应奇异值修正得矩阵,可直接用v'用到文本分类或文本聚类中

    K-means聚类算法java实现(有界面)

    1. 奇异值分解(SVD)预处理:可以对数据进行SVD降维,提高聚类效率。 2. 防止过拟合:采用肘部法则或轮廓系数等方法确定最佳的K值。 3. 处理大数据:考虑使用流式或分布式计算框架(如Apache Spark)处理大规模数据...

    聚类均值算法_k-means_高维降维_聚类_

    在实际应用中,可以通过调用这些文件进行数据聚类。 总的来说,k-means算法是一种实用的聚类工具,尤其在处理高维数据时,结合降维技术能有效揭示数据的结构。然而,理解其局限性和适用场景,以及如何选择合适的k值...

    matlab求解二元一次方程组代码-PCA_Motion_Detection:使用背景减法(SVD/PCA)和聚类的MATLAB中基于PCA的

    PCA)和聚类的MATLAB中基于PCA的对象运动检测和降维 由J.Barhydt 1 华盛顿大学华盛顿州西雅图市98195 概述: 主成分分析(PCA)是一种数学方法,该方法用于通过奇异值分解(SVD)在受到约束的情况下在过高/不足确定...

    svd.zip_SVD_matlab svd_singular value_svd decomposition_zip

    4. **谱聚类:**在机器学习中,SVD 可用于谱聚类算法,通过分析矩阵的特征向量来划分数据。 5. **推荐系统:**在协同过滤中,SVD 被用来分解用户-商品评分矩阵,预测用户可能的评分,实现个性化推荐。 **在提供的...

    LMSC_多视图聚类PID_LMSC多视图聚类

    4. **聚类**:在找到的潜在子空间中,采用聚类算法(如K-means、谱聚类等)对数据点进行分组。由于数据在低维空间中更容易区分,因此聚类效果通常会得到提升。 5. **迭代优化**:通过反复执行以上步骤,不断优化子...

    stm32 SVD文件合集

    包含:STM32F756.svd STM32H723.svd STM32L476.svd STM32F0x0.svd STM32F7x2.svd STM32H725.svd STM32L496.svd STM32F0x1.svd STM32F7x3.svd STM32H73x.svd STM32L4P5.svd STM32F0x2.svd STM32F7x5.svd STM32H742x....

    svd.zip_SVD_zip

    3. **谱聚类:** 在机器学习中,SVD 可用于谱聚类,通过计算数据的低秩近似来识别相似的数据群体。 4. **推荐系统:** 在协同过滤算法中,SVD 被用于预测用户对未评分项的评分,构建推荐系统。 5. **数值稳定性:*...

    张量(三维矩阵)奇异值分解即SVD分解进行图像去噪-SVD.rar

    在本案例中,我们将探讨如何利用SVD来对图像进行去噪,并通过MATLAB实现这一过程。 首先,让我们理解SVD的基本概念。对于一个m×n的矩阵A,SVD将A分解为三个矩阵的乘积:A = UΣV^T,其中U是m×m的正交矩阵,Σ是一...

    谱聚类算法综述.docx

    3. 谱理论:利用图的拉普拉斯矩阵进行聚类,包括谱分解、 singular value decomposition(SVD)等。 4. 聚类算法:选择合适的聚类算法,例如 K-means、 Hierarchical Clustering 等,并对其进行调整和优化。 谱聚类...

Global site tag (gtag.js) - Google Analytics