import pandas as pd
from sklearn.preprocessing import standardscaler #標準差標準化
'''進行箱線圖分析,剔除異常值
:param data:
:return:
'''qu = data.quantile(0.75)
ql = data.quantile(0.25)
iqr = qu - ql
#上限與下限 1.5可以微調
up = qu+1.5*iqr
low = ql-1.5*iqr
#進行比較運算
檢測結果無缺失值
按照平均每次消費金額進行異常值去除
bood_id_1 = box_analysis(data.iloc[:,0])
data = data.loc[bood_id_1,:]
按照平均消費週期進行異常值去除
bood_id_2 = box_analysis(data.iloc[:,1])
data = data.loc[bood_id_2,:]
data.loc[:,'每日消費金額'] = data.loc[:,'平均每次消費金額']/data.loc[:,'平均消費週期(天)']
stand = standardscaler() #建立標準差示例
#先計算每一列的均值、標準差再進行轉化資料
x = stand.fit_transform(data) #進行標準化
def built_data():
#缺失值檢測
# print(com.isnull().sum())
#篩選有用特徵,切片處理
data = com.iloc[:,-2:]
# print(data)
#異常值檢測,箱線圖分析
#按照平均每次消費金額進行異常值去除
bood_id_1 = box_analysis(data.iloc[:,0])
data = data.loc[bood_id_1,:]
#按照平均消費週期進行異常值去除
bood_id_2 = box_analysis(data.iloc[:,1])
data = data.loc[bood_id_2,:]
#構建需要特徵
data.loc[:,'每日消費金額'] = data.loc[:,'平均每次消費金額']/data.loc[:,'平均消費週期(天)']
# print(data)
#標準化資料,量級不大,暫時不處理量級
#標準化資料
stand = standardscaler() #建立標準差示例
#先計算每一列的均值、標準差再進行轉化資料
x = stand.fit_transform(data) #進行標準化
return data.values
def show_res_km(data,y_predict,center):
'''進行結果展示
:param data:原始資料
:param y_predict:**標籤
:param center:最終的聚類中心
:return:
'''plt.figure()
#獲取原始資料的行數
index_num = data.shape[0]
#colors = ['r','g','b','y']
for i in range(index_num):
plt.scatter(data[i,0],data[i,1],c=colors[int(y_predict[i])])
#散點圖的繪製,乙個乙個繪製
#聚類中心的位置
#b的話是描點劃線,bx的話是畫點但是不描線
plt.plot(center[:,0],center[:,1],'bx',marker='x',markersize=12)
plt.show()
data = built_data()
#導包實現
k=3km = kmeans(n_clusters=k)
#訓練資料
km.fit(data)
#進行** ,y_predict**標籤
y_predict = km.predict(data)
#獲取聚類中心
center = km.cluster_centers_
print('**值:\n',y_predict)
print('聚類中心:\n',center)
K Means聚類演算法
k means聚類演算法 intergret kmeans演算法的基本思想是初始隨機給定k個簇中心,按照最鄰近原則把待分類樣本點分到各個簇。然後按平均法重新計算各個簇的質心,從而確定新的簇心。一直迭代,直到簇心的移動距離小於某個給定的值。k means聚類演算法主要分為三個步驟 1 第一步是為待聚類...
聚類演算法 K means
演算法接受引數 k 然後將事先輸入的n個資料物件劃分為 k個聚類以便使得所獲得的聚類滿足 同一聚類中的物件相似度較高 而不同聚類中的物件相似度較小。聚類相似度是利用各聚類中物件的均值所獲得乙個 中心物件 引力中心 來進行計算的。k means演算法是最為經典的基於劃分的聚類方法,是十大經典資料探勘演...
模糊kmeans聚類
首先介紹乙個,fuzzykmeans演算法的主要思想 模糊均值聚類 fcm 即眾所周知的模糊isodata,是用隸屬度確定每個資料點屬於某個聚類的程度的一種聚類演算法。1973年,bezdek提出了該演算法,作為早期硬均值聚類 hcm 方法的一種改進。fcm把 n 個向量 xi i 1,2,n 分為...