Python K-Means 时间序列异常数据检测:Excel表格示例
下面是使用 Python 实现 k-means 时间序列异常数据检测的示例代码:\n\npython\nimport pandas as pd\nimport numpy as np\nfrom sklearn.cluster import KMeans\n\n# 读取 Excel 表格数据\ndata = pd.read_excel('data.xlsx')\n\n# 提取时间序列数据列\ntime_series = data['时间序列'].values\n\n# 将时间序列数据转换为二维数组\nX = np.array([time_series]).T\n\n# 使用 k-means 算法进行聚类\nkmeans = KMeans(n_clusters=2, random_state=0).fit(X)\n\n# 获取每个样本点所属的簇\nlabels = kmeans.labels_\n\n# 计算每个簇的平均值\ncluster_centers = kmeans.cluster_centers_\n\n# 计算每个样本点到其所属簇的距离\ndistances = np.linalg.norm(X - cluster_centers[labels], axis=1)\n\n# 找到距离最大的两个样本点作为异常点\noutliers = np.argsort(distances)[-2:]\n\n# 获取异常点的列数\noutlier_columns = data.columns[outliers]\n\nprint(outlier_columns)\n\n\n在上述代码中,首先使用 pd.read_excel 函数读取 Excel 表格数据,然后使用 data['时间序列'].values 提取时间序列数据列,并将其转换为二维数组。接下来,使用 KMeans 类进行 k-means 聚类,将数据分为两个簇。然后,计算每个样本点到其所属簇的距离,并找到距离最大的两个样本点作为异常点。最后,通过 data.columns[outliers] 获取异常点的列数,并打印输出。
原文地址: https://www.cveoy.top/t/topic/pPbR 著作权归作者所有。请勿转载和采集!