質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.44%
Jupyter

Jupyter (旧IPython notebook)は、Notebook形式でドキュメント作成し、プログラムの記述・実行、その実行結果を記録するツールです。メモの作成や保存、共有、確認などもブラウザ上で行うことができます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

0回答

375閲覧

K-shapeでのクラスタリング後の可視化のやりかた

minami_min

総合スコア3

Jupyter

Jupyter (旧IPython notebook)は、Notebook形式でドキュメント作成し、プログラムの記述・実行、その実行結果を記録するツールです。メモの作成や保存、共有、確認などもブラウザ上で行うことができます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

1クリップ

投稿2023/03/15 11:10

編集2023/03/16 13:21

実現したいこと

波形クラスタリングをしたあと、以下の画像のようにクラスタ別に折れ線グラフを作成したいです。

イメージ説明

参考にしているもの↓
リンク内容https://tslearn.readthedocs.io/en/stable/auto_examples/clustering/plot_kshape.html#sphx-glr-auto-examples-clustering-plot-kshape-py

実施したこと

<データフレーム>
顧客番号 1 2 3 4 5 6 7 8 9 10 11 12
A 100 200 300 400 500 600 700 800 900 1000 1100 1200
B 8000 7000 5000 4000 3500 3000 2000 1000 700 400 200 100
C 500 900 1200 1500 2000 2300 2600 3000 3400 4700 5600 8000
D 13000 12000 10000 8000 6000 5000 4800 4200 3000 2800 2000 1700
E 8000 10000 12000 13000 13700 20000 21000 24000 29000 31000 34000 70000
F 58000 48000 40000 20000 18000 17000 13000 10000 4800 3000 2400 1200

#クラスター作成 import pandas as pd import numpy as np df = pd.read_csv('K-shape.csv',encoding='shift-jis') df_1 = df.drop('顧客番号',axis=1) from tslearn.clustering import KShape from tslearn.preprocessing import TimeSeriesScalerMeanVariance #標準化 df_2 = TimeSeriesScalerMeanVariance().fit_transform(df_1) ks = KShape(n_clusters=2, verbose=False, random_state=0) y_pred = ks.fit_predict(df_2) df['Cluster'] = y_pred

解決したいグラフ化の部分

import matplotlib.pyplot as plt plt.figure() for i in range(2): plt.subplot(3, 1, 1 + i) for z in df['Cluster' == i]: plt.plot(xx.ravel(), "k-", alpha=.2) plt.plot(ks.cluster_centers_[i].ravel(), "r-") plt.xlim(0, df.shape[1]) plt.ylim(-10, 10) plt.title("Cluster %d" % (i + 1)) plt.tight_layout() plt.show()

エラー

KeyError: False The above exception was the direct cause of the following exception:

補足情報 

for z in df['Cluster' == i]: がエラー原因なのかと思い、いろいろ調べたのですが、Cluster数は2つ(0,1)でrangeも(2)にしているので、あっているような気がしており、手詰まりになってしまいました。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.44%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問