{"id":3411,"date":"2023-04-13T18:07:22","date_gmt":"2023-04-13T09:07:22","guid":{"rendered":"https:\/\/blog.since2020.jp\/?p=3411"},"modified":"2023-04-13T18:07:22","modified_gmt":"2023-04-13T09:07:22","slug":"time_series_kmeans","status":"publish","type":"post","link":"https:\/\/since2020.jp\/media\/time_series_kmeans\/","title":{"rendered":"\u3010AI\u521d\u5b66\u8005\u5411\u3051\u3011Time Series K-means\u3067\u6642\u7cfb\u5217\u30c7\u30fc\u30bf\u3092\u30af\u30e9\u30b9\u30bf\u30ea\u30f3\u30b0\u3057\u3066\u307f\u305f"},"content":{"rendered":"\n<p>\u3053\u306e\u30d6\u30ed\u30b0\u3067\u306f\u3001Time Series K-means\u6cd5\u3092\u4f7f\u3063\u3066\u3001\u6642\u7cfb\u5217\u30c7\u30fc\u30bf\u3092\u30af\u30e9\u30b9\u30bf\u30ea\u30f3\u30b0\u3059\u308b\u65b9\u6cd5\u306b\u3064\u3044\u3066\u89e3\u8aac\u3057\u307e\u3059\u3002K-means\u6cd5\u3068\u306e\u9055\u3044\u306b\u3082\u89e6\u308c\u3001\u3088\u308a\u52b9\u679c\u7684\u306a\u30af\u30e9\u30b9\u30bf\u30ea\u30f3\u30b0\u304c\u53ef\u80fd\u3068\u306a\u308b\u7406\u7531\u3092\u8aac\u660e\u3057\u307e\u3059\u3002\u307e\u305f\u3001Python\u3092\u4f7f\u3063\u3066\u5b9f\u969b\u306b\u5206\u6790\u3092\u884c\u3046\u65b9\u6cd5\u3082\u89e3\u8aac\u3057\u307e\u3059\u3002\u672c\u30d6\u30ed\u30b0\u3092\u8aad\u3080\u3053\u3068\u3067\u3001\u521d\u5b66\u8005\u3067\u3082Time Series K-means\u6cd5\u3092\u7406\u89e3\u3057\u3001\u6642\u7cfb\u5217\u30c7\u30fc\u30bf\u3092\u30af\u30e9\u30b9\u30bf\u30ea\u30f3\u30b0\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n<h2>Time Series K-means\u3068\u306f\uff1f\uff1f<\/h2>\nTime Series K-means\u306f\u3001\u4e00\u822c\u7684\u306b\u77e5\u3089\u308c\u3066\u3044\u308bK-means\u3092\u6642\u7cfb\u5217\u30c7\u30fc\u30bf\u306b\u7279\u5316\u3059\u308b\u3088\u3046\u306b\u5fdc\u7528\u3055\u308c\u305fK-means\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0\u306e\u3053\u3068\u3067\u3059\u3002\u4e00\u822c\u7684\u306aK-means\u3068\u306e\u9055\u3044\u306f\u3001Time Series K-means\u306f\u6642\u9593\u306e\u5f71\u97ff\u3092\u8003\u616e\u3057\u3066\u30af\u30e9\u30b9\u30bf\u30ea\u30f3\u30b0\u3092\u884c\u3046\u70b9\u3067\u3059\u3002\r\n\r\n\u4e00\u822c\u7684\u306aK-means\u306f\u3001\u30e6\u30fc\u30af\u30ea\u30c3\u30c9\u8ddd\u96e2\u306a\u3069\u3092\u7528\u3044\u3066\u30c7\u30fc\u30bf\u306e\u4f4d\u7f6e\u306b\u57fa\u3065\u3044\u305f\u30af\u30e9\u30b9\u30bf\u30ea\u30f3\u30b0\u3092\u884c\u3044\u307e\u3059\u304c\u3001Time Series K-means\u306f\u3001DTW(Dynamic Time Warping)\u306a\u3069\u3092\u7528\u3044\u308b\u3053\u3068\u3067\u5358\u7d14\u306a\u30c7\u30fc\u30bf\u306e\u4f4d\u7f6e\u95a2\u4fc2\u3060\u3051\u3067\u306a\u304f\u3001\u6642\u7cfb\u5217\u7279\u6027\u3082\u8003\u616e\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\r\n\r\n\u305d\u306e\u7d50\u679c\u3001\u6642\u7cfb\u5217\u306b\u5bfe\u3057\u3066\u7cbe\u5ea6\u306e\u9ad8\u3044\u30af\u30e9\u30b9\u30bf\u30ea\u30f3\u30b0\u3092\u884c\u3046\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\n\n<h2>\u5b9f\u969b\u306bPython\u3067\u5b9f\u88c5\u3057\u3066\u307f\u308b<\/h2>\n\u4eca\u56de\u306f\u4e0b\u8a18\u306e\u3088\u3046\u306aChatGPT\u306b\u4f5c\u6210\u3055\u305b\u305f\u6642\u7cfb\u5217\u30c7\u30fc\u30bf\u3092\u6271\u3044\u307e\u3059\u3002\r\n\r\n<img decoding=\"async\" src=\"https:\/\/since2020.jp\/media\/wp-content\/uploads\/2023\/04\/data.jpg\" alt=\"sampledata\" width=\"1851\" height=\"1549\" class=\"aligncenter\" \/>\r\n\r\n&nbsp;\r\n\r\n\u307e\u305a\u306f\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u30a4\u30f3\u30dd\u30fc\u30c8\u3057\u3066\u3044\u304d\u307e\u3059\u3002\u4e0b\u8a18\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u30a4\u30f3\u30dd\u30fc\u30c8\u3057\u3066\u304f\u3060\u3055\u3044\u307e\u3057\u305f\u3002\r\n<div class=\"hcb_wrap\">\r\n<pre class=\"prism line-numbers lang-python\" data-lang=\"Python\"><code>import pandas as pd\r\nimport numpy as np \r\nfrom tslearn.metrics import dtw \r\nimport matplotlib.pyplot as plt \r\nfrom tslearn.clustering import TimeSeriesKMeans<\/code><\/pre>\r\n<\/div>\r\n\u6b21\u306b\u3001\u4eca\u56de\u8a2d\u5b9a\u3059\u308b\u30af\u30e9\u30b9\u30bf\u30fc\u30b5\u30a4\u30ba\u306e\u63a2\u7d22\u3092\u884c\u306a\u3063\u3066\u3044\u304d\u307e\u3059\u3002\u4eca\u56de\u306f\u30af\u30e9\u30b9\u30bf\u30fc\u30b5\u30a4\u30ba\u306e\u63a2\u7d22\u3067\u4e00\u822c\u7684\u306b\u4f7f\u7528\u3055\u308c\u308b\u30a8\u30eb\u30dc\u30fc\u6cd5\u3092\u4f7f\u3063\u3066\u3044\u304d\u307e\u3059\u3002\u30a8\u30eb\u30dc\u30fc\u6cd5\u3068\u306f\u3001\u5404\u30c7\u30fc\u30bf\u306e\u6240\u5c5e\u30af\u30e9\u30b9\u30bf\u4e2d\u5fc3\u304b\u3089\u306e\u8ddd\u96e2\u306e2\u4e57\u306e\u548c\uff08\u8aa4\u5dee\u6307\u6a19\uff09\u306b\u95a2\u3057\u3066\u3001\u30af\u30e9\u30b9\u30bf\u6570\u3092\u5909\u5316\u3055\u305b\u305f\u6642\u306e\u8aa4\u5dee\u6307\u6a19\u306e\u5909\u66f2\u70b9\u306b\u4f4d\u7f6e\u3059\u308b\u30af\u30e9\u30b9\u30bf\u6570\u3092\u63a1\u7528\u624b\u6cd5\u3067\u3059\u3002\u4e0b\u8a18\u30b3\u30fc\u30c9\u3092\u5b9f\u884c\u3057\u8aa4\u5dee\u6307\u6a19\u306e\u63a8\u79fb\u3092\u78ba\u8a8d\u3057\u307e\u3059\u3002\r\n<div class=\"hcb_wrap\">\r\n<pre class=\"prism line-numbers lang-python\" data-lang=\"Python\"><code>distortions = [] \r\n\r\nfor i in range(1,11): \r\n    ts_km = TimeSeriesKMeans(n_clusters=i,metric=\"dtw\",random_state=42) \r\n    ts_km.fit_predict(df) distortions.append(ts_km.inertia_) \r\n\r\nplt.plot(range(1,11),distortions,marker=\"o\") \r\nplt.xticks(range(1,11)) \r\nplt.xlabel(\"Number of clusters\") \r\nplt.ylabel(\"Distortion\") \r\nplt.show()<\/code><\/pre>\r\n<\/div>\r\n\u4e0a\u8a18\u30b3\u30fc\u30c9\u306e\u5b9f\u884c\u7d50\u679c\u304c\u3053\u3061\u3089\u3067\u3059\u3002\u3053\u306e\u7d50\u679c\u304b\u3089\u3001\u4eca\u56de\u306f\u30af\u30e9\u30b9\u30bf\u30fc\u30b5\u30a4\u30ba\u30924\u306b\u8a2d\u5b9a\u3057\u3066\u5b9f\u88c5\u3057\u3066\u3044\u304d\u307e\u3059\u3002\r\n\r\n<img decoding=\"async\" src=\"https:\/\/since2020.jp\/media\/wp-content\/uploads\/2023\/04\/tskn_distortions.png\" alt=\"tskn_distortions\" width=\"567\" height=\"433\" class=\"aligncenter\" \/>\r\n\r\n\u5148\u8ff0\u306e\u7d50\u679c\u3092\u8e0f\u307e\u3048\u3001\u30af\u30e9\u30b9\u30bf\u30fc\u30b5\u30a4\u30ba\u3092\uff14\u306b\u8a2d\u5b9a\u3057Time Series K-means\u3092\u5b9f\u88c5\u3057\u3066\u3044\u304d\u307e\u3059\u3002\u4e0b\u8a18\u304c\u5b9f\u88c5\u4f8b\u3067\u3059\u3002\r\n<div class=\"hcb_wrap\">\r\n<pre class=\"prism line-numbers lang-python\" data-lang=\"Python\"><code>ts_km = TimeSeriesKMeans(n_clusters=4,metric=\"dtw\",random_state=42) \r\ny_pred = ts_km.fit_predict(df)<\/code><\/pre>\r\n<\/div>\r\n\u4e0a\u8a18\u30b3\u30fc\u30c9\u3067\u30af\u30e9\u30b9\u30bf\u30ea\u30f3\u30b0\u3057\u305f\u7d50\u679c\u304c\u3053\u3061\u3089\u3067\u3059\u3002\r\n\r\n<img decoding=\"async\" src=\"https:\/\/since2020.jp\/media\/wp-content\/uploads\/2023\/04\/tskm_result.png\" width=\"567\" height=\"432\" alt=\"tskm_result\" \/>\r\n\r\n\u8d64\u3044\u30af\u30e9\u30b9\u30bf\u30fc\u306f\u5468\u671f\u7684\u306a\u5909\u52d5\u3092\u3057\u3066\u3044\u308b\u30af\u30e9\u30b9\u30bf\u30fc\u3001\u7dd1\u306e\u30af\u30e9\u30b9\u30bf\u30fc\u306f\u5b9a\u5e38\u7684\u306a\u5909\u52d5\u3092\u3057\u3066\u3044\u308b\u30af\u30e9\u30b9\u30bf\u30fc\u3001\u9ec4\u8272\u306f\u4e0a\u6607\u50be\u5411\u306e\u5909\u52d5\u3092\u3057\u3066\u3044\u308b\u30af\u30e9\u30b9\u30bf\u30fc\u3001\u9752\u3044\u30af\u30e9\u30b9\u30bf\u30fc\u306f\u4e0b\u964d\u50be\u5411\u306b\u3042\u308b\u30af\u30e9\u30b9\u30bf\u30fc\u3067\u3042\u308b\u3053\u3068\u304c\u78ba\u8a8d\u3067\u304d\u307e\u3059\u3002\u3053\u306e\u3088\u3046\u306bTime Series K-means\u3092\u7528\u3044\u308b\u3053\u3068\u3067\u3001\u6642\u7cfb\u5217\u7279\u6027\u3092\u8e0f\u307e\u3048\u3066\u30af\u30e9\u30b9\u30bf\u30ea\u30f3\u30b0\u304c\u3067\u304d\u307e\u3059\u3002\n\n<h2>\u3055\u3044\u3054\u306b<\/h2>\n\u4eca\u56de\u306f\u6642\u7cfb\u5217\u30c7\u30fc\u30bf\u3092Time Series K-means\u306b\u3066\u6642\u7cfb\u5217\u30af\u30e9\u30b9\u30bf\u30ea\u30f3\u30b0\u3092\u884c\u3044\u307e\u3057\u305f\u3002\u30af\u30e9\u30b9\u30bf\u30ea\u30f3\u30b0\u306f\u6a5f\u68b0\u5b66\u7fd2\u30e2\u30c7\u30eb\u306e\u7279\u5fb4\u91cf\u3068\u3057\u3066\u3082\u4f7f\u308f\u308c\u308b\u6a5f\u4f1a\u304c\u591a\u304f\u306a\u3063\u3066\u3044\u308b\u306e\u3067\u3001\u662f\u975e\u3054\u6d3b\u7528\u304f\u3060\u3055\u3044\u3002","protected":false},"excerpt":{"rendered":"<p>\u3053\u306e\u30d6\u30ed\u30b0\u3067\u306f\u3001Time Series K-means\u6cd5\u3092\u4f7f\u3063\u3066\u3001\u6642\u7cfb\u5217\u30c7\u30fc\u30bf\u3092\u30af\u30e9\u30b9\u30bf\u30ea\u30f3\u30b0\u3059\u308b\u65b9\u6cd5\u306b\u3064\u3044\u3066\u89e3\u8aac\u3057\u307e\u3059\u3002K-means\u6cd5\u3068\u306e\u9055\u3044\u306b\u3082\u89e6\u308c\u3001\u3088\u308a\u52b9\u679c\u7684\u306a\u30af\u30e9\u30b9\u30bf\u30ea\u30f3\u30b0\u304c\u53ef\u80fd\u3068\u306a\u308b\u7406\u7531\u3092\u8aac\u660e\u3057\u307e\u3059\u3002\u307e\u305f\u3001P [&hellip;]<\/p>\n","protected":false},"author":85,"featured_media":3123,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"content-type":"","swell_btn_cv_data":"","footnotes":"","_wp_rev_ctl_limit":""},"categories":[1246],"tags":[96,448,446,447,449,165],"class_list":["post-3411","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-data-infrastructure","tag-ai","tag-chat-gpt","tag-k-means","tag-time-series-k-means","tag-449","tag-165"],"_links":{"self":[{"href":"https:\/\/since2020.jp\/media\/wp-json\/wp\/v2\/posts\/3411","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/since2020.jp\/media\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/since2020.jp\/media\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/since2020.jp\/media\/wp-json\/wp\/v2\/users\/85"}],"replies":[{"embeddable":true,"href":"https:\/\/since2020.jp\/media\/wp-json\/wp\/v2\/comments?post=3411"}],"version-history":[{"count":0,"href":"https:\/\/since2020.jp\/media\/wp-json\/wp\/v2\/posts\/3411\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/since2020.jp\/media\/wp-json\/wp\/v2\/media\/3123"}],"wp:attachment":[{"href":"https:\/\/since2020.jp\/media\/wp-json\/wp\/v2\/media?parent=3411"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/since2020.jp\/media\/wp-json\/wp\/v2\/categories?post=3411"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/since2020.jp\/media\/wp-json\/wp\/v2\/tags?post=3411"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}