python 樣本聚類

2021-10-01 20:26:34 字數 1798 閱讀 5633

import pandas as pd

import numpy as np

from pandas import dataframe,series

from sklearn.cluster import kmeans

from sklearn.cluster import birch

datafile = u'e:\\grade3作業\\多元實踐\\newjiudiandata1.csv'#檔案所在位置,u為防止路徑中有中文名稱,此處沒有,可以省略

outfile = u'e:\\grade3作業\\多元實踐\\julei_out.csv'#設定輸出檔案的位置

data = pd.read_csv(datafile)#datafile是excel檔案,所以用read_excel,如果是csv檔案則用read_csv

d = dataframe(data)

mod = kmeans(n_clusters=3, n_jobs = 4, max_iter = 500)#聚成4類資料,併發數為4,最大迴圈次數為500

mod.fit_predict(d)#y_pred表示聚類的結果

#聚成4類資料,統計每個聚類下的資料量,並且求出他們的中心

r1 = pd.series(mod.labels_).value_counts()

r2 = pd.dataframe(mod.cluster_centers_)

r = pd.concat([r2, r1], axis = 1)

r.columns = list(d.columns) + [u'類別數目']

#給每一條資料標註上被分為哪一類

r = pd.concat([d, pd.series(mod.labels_, index = d.index)], axis = 1)

r.columns = list(d.columns) + [u'聚類類別']

print(r.head())

r.to_csv(outfile,sep=',',encoding='utf_8_sig',index=false, header=true)

from sklearn.manifold import tsne

ts = tsne()

ts.fit_transform(r)

ts = pd.dataframe(ts.embedding_, index = r.index)

import matplotlib.pyplot as plt

a = ts[r[u'聚類類別'] == 0]

plt.plot(a[0], a[1], '2',color='#f3a43b',label="0")

a = ts[r[u'聚類類別'] == 1]

plt.plot(a[0], a[1], '1',color='#60c0dd', label="1")

a = ts[r[u'聚類類別'] == 2]

plt.plot(a[0], a[1], '*',color='#9bca63', label="2")

#a = ts[r[u'聚類類別'] == 3]

#plt.plot(a[0], a[1], '+',color='#fe8463', label="3")

#a = ts[r[u'聚類類別'] == 4]

#plt.plot(a[0], a[1], '3',color='red', label="4")

plt.legend(); #加圖例

plt.show()

Python資料探勘 聚類

聚類 屬於無監督學習範疇 聚類 將無標籤資料聚成若干類 聚類方法的種類 kmeans聚類 和 dbscan密度聚類 呼叫時的區別 kmeans需要指定簇的個數 dbscan需要指定簇的個數。內部原理的區別 極簡描述 kmeans 隨機生成k個簇中心 每個資料點與其最近的簇中心連線 更新k個簇中心 同...

kmean聚類python實現

import pandas as pd import numpy as np import xlrd 匯入資料 df2 pd.read excel test2.xlsx data np.array df2 去掉前兩列 data data 2 分為k類 k 3 臨近均值e e 0.00001 獲得行數...

機器學習 Python 聚類

一 判斷聚類數目 聚為幾類 1 手肘法 核心思想 import pandas as pd import numpy as np from sklearn.cluster import kmeans import matplotlib.pyplot as plt 資料為data,此處略去輸入過程 利用...