程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Python數據分析與機器學習34-DBSCAN實例

編輯:Python

文章目錄

  • 一. 數據源介紹
  • 二. 使用DBSCAN進行聚類
  • 參考:

一. 數據源介紹

數據源:
一個啤酒的數據源,為了方便演示,數據只有20行。

  • name 啤酒的名稱
  • calories 啤酒的卡路裡
  • sodium 納元素含量
  • alcohol 酒精含量
  • cost 價格

二. 使用DBSCAN進行聚類

代碼:

import pandas as pd
from sklearn.cluster import DBSCAN
from pandas.plotting import scatter_matrix
import matplotlib.pyplot as plt
import numpy as np
from sklearn.preprocessing import StandardScaler
from sklearn import metrics
# 讀取數據源
beer = pd.read_csv('E:/file/data.txt', sep=' ')
X = beer[["calories","sodium","alcohol","cost"]]
# 訓練數據源
db = DBSCAN(eps=10, min_samples=2).fit(X)
# 加上標簽
labels = db.labels_
beer['cluster_db'] = labels
beer.sort_values('cluster_db')
# 畫圖
colors = np.array(['red', 'green', 'blue', 'yellow'])
pd.scatter_matrix(X, c=colors[beer.cluster_db], figsize=(10,10), s=100)
plt.show()
# 驗證模型效果
score_scaled = metrics.silhouette_score(X,beer.cluster_db)
print("使用DBSCAN的模型效果:")
print(score_scaled)

測試記錄:
使用DBSCAN的模型效果:
0.49530955296776086

分析:
從評分及可視化效果來看,聚類效果不理想,不如K-Means效果。
對於樣本集復雜的使用DBSCAN。
對於樣本集簡單的直接使用K-Means即可。

參考:

  1. https://study.163.com/course/introduction.htm?courseId=1003590004#/courseDetail?tab=1

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved