【发布时间】:2020-10-28 07:44:45
【问题描述】:
我从来都不擅长 Python 绘图概念,现在我显然仍然缺少一些新东西。
这是我的代码。
import pandas as pd
import matplotlib.pyplot as plt
import sys
from numpy import genfromtxt
from sklearn.cluster import DBSCAN
data = pd.read_csv('C:\\Users\\path_here\\wine.csv')
data
# Reading in 2D Feature Space
model = DBSCAN(eps=0.9, min_samples=10).fit(data)
array_flavanoids = data.iloc[:, 2]
# Slicing array
array_colorintensity = data.iloc[:, 3]
# Scatter plot function
colors = model.labels_
plt.scatter(array_flavanoids, array_colorintensity, c=colors, marker='o')
plt.xlabel('Concentration of flavanoids', fontsize=16)
plt.ylabel('Color intensity', fontsize=16)
plt.title('Concentration of flavanoids vs Color intensity', fontsize=20)
plt.show()
这是我的结果。
我预计异常值的颜色与非异常值的颜色不同。所以,像这样。
也许一种颜色用于异常值,另一种颜色用于非异常值。我只是想在这个练习中学习这个概念。我正在尝试遵循此链接中的示例。
https://towardsdatascience.com/outlier-detection-python-cd22e6a12098
我正在使用这个数据源。
https://www.kaggle.com/uciml/red-wine-quality-cortez-et-al-2009
【问题讨论】:
-
噪声点(=异常值,即无法分配给任何集群的数据点)用
-1标记。显然,您的 DBSCAN 参数创建了一个模型,将所有数据点分配给同一组。您的示例不可重现,因为绘制的数据不是来自指定的数据集。
标签: python python-3.x matplotlib dbscan