導航:首頁 > 編程語言 > python聚類包

python聚類包

發布時間:2023-07-12 06:28:52

python代碼如何應用系統聚類和K-means聚類法進行聚類分析 然後選擇變數,建立適當的模型

-Means聚類演算法
k-means演算法以k為參數,把n個對象分成k個簇,使簇內具有較高的相似度,而簇間的相似度較低。

隨機選擇k個點作為初始的聚類中心。
對於剩下的點,根據其與聚類中心的距離,將其歸入最近的簇。
對每個簇,計算所有點的均值作為新的聚類中心。
重復2,3直到聚類中心不再發生改變

Figure 1

K-means的應用
數據介紹:
現有1999年全國31個省份城鎮居民家庭平均每人全年消費性支出的八大主要變數數據,這八大變數分別是:食品、衣著、家庭設備用品及服務、醫療保健、交通和通訊、娛樂教育文化服務、居住以及雜項商品和服務。利用已有數據,對31個省份進行聚類。

實驗目的:
通過聚類,了解1999年各個省份的消費水平在國內的情況。

技術路線:
sklearn.cluster.Kmeans

數據實例:

㈡ 譜聚類(Spectral clustering)(python實現)

譜聚類概念
譜聚類是一種基於圖論的聚類方法,通過對樣本數據的拉普拉斯矩陣的特徵向量進行聚類,從而達到對樣本數據聚類的母的。譜聚類可以理解為將高維空間的數據映射到低維,然後在低維空間用其它聚類演算法(如KMeans)進行聚類。

演算法步驟

1 計算相似度矩陣 W
2 計算度矩陣 D
3 計算拉普拉斯矩陣L=D-W
4 計算L的特徵值,將特徵值從小到大排序,取前k個特徵值.將這個特徵值向量轉換為矩陣
5 通過其他聚類演算法對其進行聚類,如k-means
詳細公式和概念請到 大佬博客

相比較PCA降維中取前k大的特徵值對應的特徵向量,這里取得是前k小的特徵值對應的特徵向量。但是上述的譜聚類演算法並不是最優的,接下來我們一步一步的分解上面的步驟,總結一下在此基礎上進行優化的譜聚類的版本。

python實現
例子一:使用譜聚類從雜訊背景中分割目標

效果圖

例子2:分割圖像中硬幣的區域

效果圖

注意
1)當聚類的類別個數較小的時候,譜聚類的效果會很好,但是當聚類的類別個數較大的時候,則不建議使用譜聚類;

(2)譜聚類演算法使用了降維的技術,所以更加適用於高維數據的聚類;

(3)譜聚類只需要數據之間的相似度矩陣,因此對於處理稀疏數據的聚類很有效。這點傳統聚類演算法(比如K-Means)很難做到

(4)譜聚類演算法建立在譜圖理論基礎上,與傳統的聚類演算法相比,它具有能在任意形狀的樣本空間上聚類且收斂於全局最優解
(5)譜聚類對相似度圖的改變和聚類參數的選擇非常的敏感;

(6)譜聚類適用於均衡分類問題,即各簇之間點的個數相差不大,對於簇之間點個數相差懸殊的聚類問題,譜聚類則不適用;

參考
譜聚類演算法介紹
sklearn官網

㈢ 建議收藏!10 種 Python 聚類演算法完整操作示例

聚類或聚類分析是無監督學習問題。它通常被用作數據分析技術,用於發現數據中的有趣模式,例如基於其行為的客戶群。有許多聚類演算法可供選擇,對於所有情況,沒有單一的最佳聚類演算法。相反,最好探索一系列聚類演算法以及每種演算法的不同配置。在本教程中,你將發現如何在 python 中安裝和使用頂級聚類演算法。完成本教程後,你將知道:

聚類分析,即聚類,是一項無監督的機器學習任務。它包括自動發現數據中的自然分組。與監督學習(類似預測建模)不同,聚類演算法只解釋輸入數據,並在特徵空間中找到自然組或群集。

群集通常是特徵空間中的密度區域,其中來自域的示例(觀測或數據行)比其他群集更接近群集。群集可以具有作為樣本或點特徵空間的中心(質心),並且可以具有邊界或范圍。

聚類可以作為數據分析活動提供幫助,以便了解更多關於問題域的信息,即所謂的模式發現或知識發現。例如:

聚類還可用作特徵工程的類型,其中現有的和新的示例可被映射並標記為屬於數據中所標識的群集之一。雖然確實存在許多特定於群集的定量措施,但是對所識別的群集的評估是主觀的,並且可能需要領域專家。通常,聚類演算法在人工合成數據集上與預先定義的群集進行學術比較,預計演算法會發現這些群集。

有許多類型的聚類演算法。許多演算法在特徵空間中的示例之間使用相似度或距離度量,以發現密集的觀測區域。因此,在使用聚類演算法之前,擴展數據通常是良好的實踐。

一些聚類演算法要求您指定或猜測數據中要發現的群集的數量,而另一些演算法要求指定觀測之間的最小距離,其中示例可以被視為「關閉」或「連接」。因此,聚類分析是一個迭代過程,在該過程中,對所識別的群集的主觀評估被反饋回演算法配置的改變中,直到達到期望的或適當的結果。scikit-learn 庫提供了一套不同的聚類演算法供選擇。下面列出了10種比較流行的演算法:

每個演算法都提供了一種不同的方法來應對數據中發現自然組的挑戰。沒有最好的聚類演算法,也沒有簡單的方法來找到最好的演算法為您的數據沒有使用控制實驗。在本教程中,我們將回顧如何使用來自 scikit-learn 庫的這10個流行的聚類演算法中的每一個。這些示例將為您復制粘貼示例並在自己的數據上測試方法提供基礎。我們不會深入研究演算法如何工作的理論,也不會直接比較它們。讓我們深入研究一下。

在本節中,我們將回顧如何在 scikit-learn 中使用10個流行的聚類演算法。這包括一個擬合模型的例子和可視化結果的例子。這些示例用於將粘貼復制到您自己的項目中,並將方法應用於您自己的數據。

1.庫安裝

首先,讓我們安裝庫。不要跳過此步驟,因為你需要確保安裝了最新版本。你可以使用 pip Python 安裝程序安裝 scikit-learn 存儲庫,如下所示:

接下來,讓我們確認已經安裝了庫,並且您正在使用一個現代版本。運行以下腳本以輸出庫版本號。

運行該示例時,您應該看到以下版本號或更高版本。

2.聚類數據集

我們將使用 make _ classification ()函數創建一個測試二分類數據集。數據集將有1000個示例,每個類有兩個輸入要素和一個群集。這些群集在兩個維度上是可見的,因此我們可以用散點圖繪制數據,並通過指定的群集對圖中的點進行顏色繪制。這將有助於了解,至少在測試問題上,群集的識別能力如何。該測試問題中的群集基於多變數高斯,並非所有聚類演算法都能有效地識別這些類型的群集。因此,本教程中的結果不應用作比較一般方法的基礎。下面列出了創建和匯總合成聚類數據集的示例。

運行該示例將創建合成的聚類數據集,然後創建輸入數據的散點圖,其中點由類標簽(理想化的群集)著色。我們可以清楚地看到兩個不同的數據組在兩個維度,並希望一個自動的聚類演算法可以檢測這些分組。

已知聚類著色點的合成聚類數據集的散點圖接下來,我們可以開始查看應用於此數據集的聚類演算法的示例。我已經做了一些最小的嘗試來調整每個方法到數據集。3.親和力傳播親和力傳播包括找到一組最能概括數據的範例。

它是通過 AffinityPropagation 類實現的,要調整的主要配置是將「 阻尼 」設置為0.5到1,甚至可能是「首選項」。下面列出了完整的示例。

運行該示例符合訓練數據集上的模型,並預測數據集中每個示例的群集。然後創建一個散點圖,並由其指定的群集著色。在這種情況下,我無法取得良好的結果。

數據集的散點圖,具有使用親和力傳播識別的聚類

4.聚合聚類

聚合聚類涉及合並示例,直到達到所需的群集數量為止。它是層次聚類方法的更廣泛類的一部分,通過 AgglomerationClustering 類實現的,主要配置是「 n _ clusters 」集,這是對數據中的群集數量的估計,例如2。下面列出了完整的示例。

運行該示例符合訓練數據集上的模型,並預測數據集中每個示例的群集。然後創建一個散點圖,並由其指定的群集著色。在這種情況下,可以找到一個合理的分組。

使用聚集聚類識別出具有聚類的數據集的散點圖

5.BIRCHBIRCH

聚類( BIRCH 是平衡迭代減少的縮寫,聚類使用層次結構)包括構造一個樹狀結構,從中提取聚類質心。

它是通過 Birch 類實現的,主要配置是「 threshold 」和「 n _ clusters 」超參數,後者提供了群集數量的估計。下面列出了完整的示例。

運行該示例符合訓練數據集上的模型,並預測數據集中每個示例的群集。然後創建一個散點圖,並由其指定的群集著色。在這種情況下,可以找到一個很好的分組。

使用BIRCH聚類確定具有聚類的數據集的散點圖

6.DBSCANDBSCAN

聚類(其中 DBSCAN 是基於密度的空間聚類的雜訊應用程序)涉及在域中尋找高密度區域,並將其周圍的特徵空間區域擴展為群集。

它是通過 DBSCAN 類實現的,主要配置是「 eps 」和「 min _ samples 」超參數。下面列出了完整的示例。

運行該示例符合訓練數據集上的模型,並預測數據集中每個示例的群集。然後創建一個散點圖,並由其指定的群集著色。在這種情況下,盡管需要更多的調整,但是找到了合理的分組。

使用DBSCAN集群識別出具有集群的數據集的散點圖

7.K均值

K-均值聚類可以是最常見的聚類演算法,並涉及向群集分配示例,以盡量減少每個群集內的方差。

它是通過 K-均值類實現的,要優化的主要配置是「 n _ clusters 」超參數設置為數據中估計的群集數量。下面列出了完整的示例。

運行該示例符合訓練數據集上的模型,並預測數據集中每個示例的群集。然後創建一個散點圖,並由其指定的群集著色。在這種情況下,可以找到一個合理的分組,盡管每個維度中的不等等方差使得該方法不太適合該數據集。

使用K均值聚類識別出具有聚類的數據集的散點圖

8.Mini-Batch

K-均值Mini-Batch K-均值是 K-均值的修改版本,它使用小批量的樣本而不是整個數據集對群集質心進行更新,這可以使大數據集的更新速度更快,並且可能對統計雜訊更健壯。

它是通過 MiniBatchKMeans 類實現的,要優化的主配置是「 n _ clusters 」超參數,設置為數據中估計的群集數量。下面列出了完整的示例。

運行該示例符合訓練數據集上的模型,並預測數據集中每個示例的群集。然後創建一個散點圖,並由其指定的群集著色。在這種情況下,會找到與標准 K-均值演算法相當的結果。

帶有最小批次K均值聚類的聚類數據集的散點圖

9.均值漂移聚類

均值漂移聚類涉及到根據特徵空間中的實例密度來尋找和調整質心。

它是通過 MeanShift 類實現的,主要配置是「帶寬」超參數。下面列出了完整的示例。

運行該示例符合訓練數據集上的模型,並預測數據集中每個示例的群集。然後創建一個散點圖,並由其指定的群集著色。在這種情況下,可以在數據中找到一組合理的群集。

具有均值漂移聚類的聚類數據集散點圖

10.OPTICSOPTICS

聚類( OPTICS 短於訂購點數以標識聚類結構)是上述 DBSCAN 的修改版本。

它是通過 OPTICS 類實現的,主要配置是「 eps 」和「 min _ samples 」超參數。下面列出了完整的示例。

運行該示例符合訓練數據集上的模型,並預測數據集中每個示例的群集。然後創建一個散點圖,並由其指定的群集著色。在這種情況下,我無法在此數據集上獲得合理的結果。

使用OPTICS聚類確定具有聚類的數據集的散點圖

11.光譜聚類

光譜聚類是一類通用的聚類方法,取自線性線性代數。

它是通過 Spectral 聚類類實現的,而主要的 Spectral 聚類是一個由聚類方法組成的通用類,取自線性線性代數。要優化的是「 n _ clusters 」超參數,用於指定數據中的估計群集數量。下面列出了完整的示例。

運行該示例符合訓練數據集上的模型,並預測數據集中每個示例的群集。然後創建一個散點圖,並由其指定的群集著色。在這種情況下,找到了合理的集群。

使用光譜聚類聚類識別出具有聚類的數據集的散點圖

12.高斯混合模型

高斯混合模型總結了一個多變數概率密度函數,顧名思義就是混合了高斯概率分布。它是通過 Gaussian Mixture 類實現的,要優化的主要配置是「 n _ clusters 」超參數,用於指定數據中估計的群集數量。下面列出了完整的示例。

運行該示例符合訓練數據集上的模型,並預測數據集中每個示例的群集。然後創建一個散點圖,並由其指定的群集著色。在這種情況下,我們可以看到群集被完美地識別。這並不奇怪,因為數據集是作為 Gaussian 的混合生成的。

使用高斯混合聚類識別出具有聚類的數據集的散點圖

在本文中,你發現了如何在 python 中安裝和使用頂級聚類演算法。具體來說,你學到了:

㈣ 如何用python對文本進行聚類

實現原理:
首先從Tourist_spots_5A_BD.txt中讀取景點信息,然後通過調用無界面瀏覽器PhantomJS(Firefox可替代)訪問網路鏈接"http://ke..com/",通過Selenium獲取輸入對話框ID,輸入關鍵詞如"故宮",再訪問該網路頁面。最後通過分析DOM樹結構獲取摘要的ID並獲取其值。核心代碼如下:
driver.find_elements_by_xpath("//div[@class='lemma-summary']/div")

PS:Selenium更多應用於自動化測試,推薦Python爬蟲使用scrapy等開源工具。
# coding=utf-8
"""
Created on 2015-09-04 @author: Eastmount
"""

import time
import re
import os
import sys
import codecs
import shutil
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import selenium.webdriver.support.ui as ui
from selenium.webdriver.common.action_chains import ActionChains

#Open PhantomJS
driver = webdriver.PhantomJS(executable_path="G:\phantomjs-1.9.1-windows\phantomjs.exe")
#driver = webdriver.Firefox()
wait = ui.WebDriverWait(driver,10)

#Get the Content of 5A tourist spots
def getInfobox(entityName, fileName):
try:
#create paths and txt files
print u'文件名稱: ', fileName
info = codecs.open(fileName, 'w', 'utf-8')

#locate input notice: 1.visit url by unicode 2.write files
#Error: Message: Element not found in the cache -
# Perhaps the page has changed since it was looked up
#解決方法: 使用Selenium和Phantomjs
print u'實體名稱: ', entityName.rstrip('\n')
driver.get("http://ke..com/")
elem_inp = driver.find_element_by_xpath("//form[@id='searchForm']/input")
elem_inp.send_keys(entityName)
elem_inp.send_keys(Keys.RETURN)
info.write(entityName.rstrip('\n')+'\r\n') #codecs不支持'\n'換行
time.sleep(2)

#load content 摘要
elem_value = driver.find_elements_by_xpath("//div[@class='lemma-summary']/div")
for value in elem_value:
print value.text
info.writelines(value.text + '\r\n')
time.sleep(2)

except Exception,e: #'utf8' codec can't decode byte
print "Error: ",e
finally:
print '\n'
info.close()

#Main function
def main():
#By function get information
path = "BaiSpider\\"
if os.path.isdir(path):
shutil.rmtree(path, True)
os.makedirs(path)
source = open("Tourist_spots_5A_BD.txt", 'r')
num = 1
for entityName in source:
entityName = unicode(entityName, "utf-8")
if u'故宮' in entityName: #else add a '?'
entityName = u'北京故宮'
name = "%04d" % num
fileName = path + str(name) + ".txt"
getInfobox(entityName, fileName)
num = num + 1
print 'End Read Files!'
source.close()
driver.close()

if __name__ == '__main__':
main()

㈤ python對數據進行聚類怎麼顯示數據分類

將其整理成數據集為:
[ [1,0,"yes"],[1,1,"yes"],[0,1,"yes"],[0,0,"no"],[1,0,"no"] ]
演算法過程:

1、計算原始的信息熵。
2、依次計算數據集中每個樣本的每個特徵的信息熵。
3、比較不同特徵信息熵的大小,選出信息熵最大的特徵值並輸出。
運行結果:
col : 0 curInfoGain : 2.37744375108 baseInfoGain : 0.0
col : 1 curInfoGain : 1.37744375108 baseInfoGain : 2.37744375108
bestInfoGain : 2.37744375108 bestFeature: 0
結果分析:
說明按照第一列,即有無喉結這個特徵來進行分類的效果更好。
思考:
1、能否利用決策樹演算法,將樣本最終的分類結果進行輸出?如樣本1,2,3屬於男性,4屬於女性。

2、示常式序生成的決策樹只有一層,當特徵量增多的時候,如何生成具有多層結構的決策樹?
3、如何評判分類結果的好壞?
在下一篇文章中,我將主要對以上三個問題進行分析和解答。如果您也感興趣,歡迎您訂閱我的文章,也可以在下方進行評論,如果有疑問或認為不對的地方,您也可以留言,我將積極與您進行解答。
完整代碼如下:
from math import log
"""
計算信息熵
"""
def calcEntropy(dataset):
diclabel = {} ## 標簽字典,用於記錄每個分類標簽出現的次數
for record in dataset:
label = record[-1]
if label not in diclabel.keys():
diclabel[label] = 0
diclabel[label] += 1
### 計算熵
entropy = 0.0
cnt = len(dataset)
for label in diclabel.keys():
prob = float(1.0 * diclabel[label]/cnt)
entropy -= prob * log(prob,2)
return entropy
def initDataSet():
dataset = [[1,0,"yes"],[1,1,"yes"],[0,1,"yes"],[0,0,"no"],[1,0,"no"]]
label = ["male","female"]
return dataset,label
#### 拆分dataset ,根據指定的過濾選項值,去掉指定的列形成一個新的數據集
def splitDataset(dataset , col, value):
retset = [] ## 拆分後的數據集
for record in dataset:
if record[col] == value :
recedFeatVec = record[:col]
recedFeatVec.extend(record[col+1:]) ### 將指定的列剔除
retset.append(recedFeatVec) ### 將新形成的特徵值列表追加到返回的列表中
return retset
### 找出信息熵增益最大的特徵值
### 參數:
### dataset : 原始的數據集
def findBestFeature(dataset):
numFeatures = len(dataset[0]) - 1 ### 特徵值的個數
baseEntropy = calcEntropy(dataset) ### 計算原始數據集的熵
baseInfoGain = 0.0 ### 初始信息增益
bestFeature = -1 ### 初始的最優分類特徵值索引
### 計算每個特徵值的熵
for col in range(numFeatures):
features = [record[col] for record in dataset] ### 提取每一列的特徵向量 如此處col= 0 ,則features = [1,1,0,0]
uniqueFeat = set(features)
curInfoGain = 0 ### 根據每一列進行拆分,所獲得的信息增益
for featVal in uniqueFeat:
subDataset = splitDataset(dataset,col,featVal) ### 根據col列的featVal特徵值來對數據集進行劃分
prob = 1.0 * len(subDataset)/numFeatures ### 計運算元特徵數據集所佔比例
curInfoGain += prob * calcEntropy(subDataset) ### 計算col列的特徵值featVal所產生的信息增益
# print "col : " ,col , " featVal : " , featVal , " curInfoGain :" ,curInfoGain ," baseInfoGain : " ,baseInfoGain
print "col : " ,col , " curInfoGain :" ,curInfoGain ," baseInfoGain : " ,baseInfoGain
if curInfoGain > baseInfoGain:
baseInfoGain = curInfoGain
bestFeature = col
return baseInfoGain,bestFeature ### 輸出最大的信息增益,以獲得該增益的列
dataset,label = initDataSet()
infogain , bestFeature = findBestFeature(dataset)
print "bestInfoGain :" , infogain, " bestFeature:",bestFeature

㈥ python怎麼用sklearn包進行聚類

#-*-coding:utf-8-*-
fromsklearn.clusterimportKMeans
fromsklearn.externalsimportjoblib
importnumpy

final=open('c:/test/final.dat','r')

data=[line.strip().split(' ')forlineinfinal]
feature=[[float(x)forxinrow[3:]]forrowindata]

#調用kmeans類
clf=KMeans(n_clusters=9)
s=clf.fit(feature)
prints

#9個中心
printclf.cluster_centers_

#每個樣本所屬的簇
printclf.labels_

#用來評估簇的個數是否合適,距離越小說明簇分的越好,選取臨界點的簇個數
printclf.inertia_

#進行預測
printclf.predict(feature)

#保存模型
joblib.mp(clf,'c:/km.pkl')

#載入保存的模型
clf=joblib.load('c:/km.pkl')

'''
#用來評估簇的個數是否合適,距離越小說明簇分的越好,選取臨界點的簇個數
foriinrange(5,30,1):
clf=KMeans(n_clusters=i)
s=clf.fit(feature)
printi,clf.inertia_
'''

㈦ 減法聚類如何用Python實現

下面是一個k-means聚類演算法在python2.7.5上面的具體實現,你需要先安裝Numpy和Matplotlib:
from numpy import *
import time
import matplotlib.pyplot as plt

# calculate Euclidean distance
def euclDistance(vector1, vector2):
return sqrt(sum(power(vector2 - vector1, 2)))
# init centroids with random samples
def initCentroids(dataSet, k):
numSamples, dim = dataSet.shape
centroids = zeros((k, dim))
for i in range(k):
index = int(random.uniform(0, numSamples))
centroids[i, :] = dataSet[index, :]
return centroids
# k-means cluster
def kmeans(dataSet, k):
numSamples = dataSet.shape[0]
# first column stores which cluster this sample belongs to,
# second column stores the error between this sample and its centroid
clusterAssment = mat(zeros((numSamples, 2)))
clusterChanged = True
## step 1: init centroids
centroids = initCentroids(dataSet, k)
while clusterChanged:
clusterChanged = False
## for each sample
for i in xrange(numSamples):
minDist = 100000.0
minIndex = 0
## for each centroid
## step 2: find the centroid who is closest
for j in range(k):
distance = euclDistance(centroids[j, :], dataSet[i, :])
if distance < minDist:
minDist = distance
minIndex = j

## step 3: update its cluster
if clusterAssment[i, 0] != minIndex:
clusterChanged = True
clusterAssment[i, :] = minIndex, minDist**2
## step 4: update centroids
for j in range(k):
pointsInCluster = dataSet[nonzero(clusterAssment[:, 0].A == j)[0]]
centroids[j, :] = mean(pointsInCluster, axis = 0)
print 'Congratulations, cluster complete!'
return centroids, clusterAssment
# show your cluster only available with 2-D data
def showCluster(dataSet, k, centroids, clusterAssment):
numSamples, dim = dataSet.shape
if dim != 2:
print "Sorry! I can not draw because the dimension of your data is not 2!"
return 1
mark = ['or', 'ob', 'og', 'ok', '^r', '+r', 'sr', 'dr', '<r', 'pr']
if k > len(mark):
print "Sorry! Your k is too large! please contact Zouxy"
return 1
# draw all samples
for i in xrange(numSamples):
markIndex = int(clusterAssment[i, 0])
plt.plot(dataSet[i, 0], dataSet[i, 1], mark[markIndex])
mark = ['Dr', 'Db', 'Dg', 'Dk', '^b', '+b', 'sb', 'db', '<b', 'pb']
# draw the centroids
for i in range(k):
plt.plot(centroids[i, 0], centroids[i, 1], mark[i], markersize = 12)
plt.show()

㈧ Python怎麼構建文本矩陣並聚類

可能我很快回答不了你的問題。還需要細細回味一下。
但是我覺得你的問題是一個比較明顯的短文本聚類問題,這個問題應該在國際上都是比較難的吧。
如果還涉及到中文,中文的相關處理又不能照抄英文短文本聚類的方法,相關資料更加少了。
我倒是建議你 多看一些短文本聚類相關的文章。

問題一:技術上python矩陣表示的話:你可以使用python包,如下:
from numpy import matrix
A = matrix( [[1,2,3],[11,12,13],[21,22,23]])
這樣你需要額外規定化:行i表示文檔編號i的文檔,列j表示詞j出現次數,A[i][j]表示在文檔i中詞j的出現頻率
或者
如同那篇文章所說的採用dict表示法:A = [{'額外':1},{'每天':1,'回帖':1},......]表示整個文檔集合。

問題二:如同這樣的問題本質一樣,短文本聚類是否還適合傳統的分詞,去除副詞...等處理步驟,
如何選擇合適的模型來表示這類問題,我覺得你還是參考一些這方面的文章,最好中文的。
比如現在很火的微博,也會有好多的人嘗試對其中成幹上萬評論進行聚類。很多進行二類或者三類聚類/分類:支持-中立-反對。
論壇的評論應該很早以前就有研究聚類/分類.我覺得去那裡參考會更好.如果不是特別面向指定目的的聚類,我覺得採用一些使用寬泛的方法就行了。感覺結果不會很好。

問題三:EM演算法感覺像純數學的東西,學術功底不夠深,我也不好發表看法。
感覺這個問題的本質已經超出我的知識范疇。最簡單文檔聚類無非:分詞-文本預處理[同義詞之類]-文檔與詞計頻矩陣表示-(TF-IDF預處理)-kmeans跑起來-輸出結果.

閱讀全文

與python聚類包相關的資料

熱點內容
如何把iphoneapp變小 瀏覽:128
一個後端程序員的日常 瀏覽:414
51單片機歷史 瀏覽:890
怎樣減小pdf文件大小 瀏覽:31
和彩雲zip解壓 瀏覽:725
linux查看線程狀態 瀏覽:459
怎麼起文件夾名稱 瀏覽:49
北京交大編譯原理 瀏覽:982
linux執行java腳本 瀏覽:589
全能掃描加密文檔忘記密碼怎麼辦 瀏覽:75
極品飛車ol安卓版為什麼要關服 瀏覽:275
學生伺服器怎麼選 瀏覽:464
mac系統本身編譯器 瀏覽:151
頭條app如何設置橫屏模式 瀏覽:359
clion怎麼使用終端編譯 瀏覽:768
伺服器地址部署到公網 瀏覽:494
新桑塔納安卓大屏導航怎麼拆 瀏覽:384
程序員送給女友的禮物 瀏覽:434
ftp命令行查看文件數量 瀏覽:508
linux查看設備的命令 瀏覽:839