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

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

新規登録して質問してみよう
ただいま回答率
85.49%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

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

Q&A

解決済

2回答

2562閲覧

時間変化するデータの重心の出し方

wpspring0300

総合スコア11

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

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

1グッド

0クリップ

投稿2018/08/23 16:37

編集2018/08/24 00:53

k-means法を実装した際,データの重心とクラスタの重心の距離を測りクラスタの所属を決めているのですが,データの重心とクラスタの重心の表示のさせ方がわからないので教えていただきたいです。
ちなみに使用するデータは540軒分の1日の1時間あたりの消費電力です。

python

1import pandas as pd 2import numpy as np 3import glob 4from sklearn.cluster import KMeans 5import matplotlib.pyplot as plt 6 7 8 9df = glob.glob('*_m.csv') 10df2 = pd.DataFrame() 11for i in range(546): 12 i +=1 13 a = df[i-1] 14 df1 = pd.read_csv(f'{a}') 15 df3 = df1.groupby(df1.index // 60).mean() 16 for l in range(24): 17 l += 1 18 df2.loc[l-1,i] = df3.iloc[l-1,1] + df3.iloc[l-1,2] 19array = np.array(df2) 20array = array.T 21 22pred = KMeans(n_clusters=30).fit_predict(array) 23 24for n in range(30): 25 df4 = pd.DataFrame() 26 n += 1 27 for i in range(546): 28 i +=1 29 if pred[i-1] == n-1: 30 for l in range(24): 31 l +=1 32 df4.loc[l-1,i-1] = df2.iloc[l-1,i-1] 33 df4.to_csv(f'30{n-1}.csv') 34

エラーなどはなく実行できるのですが評価を行う際に分散などを調べたいのでクラスタとデータの重心の出し方を知りたいです。

tachikoma👍を押しています

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

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

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

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

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

tachikoma

2018/08/23 22:31

どんなことを試したのか、どんなデータを扱おうとしているのかについて説明して下さい。その上で上手く行かなかったコードをここに貼ってエラーをl説明して下さい。
guest

回答2

0

ベストアンサー

データの重心:

全てのデータ(540軒全て)を対象としたものでしょうか。
https://code.i-harness.com/ja/q/13070
こちらのページを参考に540次元を考え、どれを採用するかは、どのような観点で重心が必要かをお考えいただいた上で決定すれば良いと思います。

クラスタの重心:

ドキュメントをご覧ください。
http://scikit-learn.org/stable/modules/generated/sklearn.cluster.KMeans.html

python

1km = KMeans(n_clusters=30).fit(array) 2km.cluster_centers_ を参照することになります。 3

分散などを調べたい:

全データの中で、同じクラスタに属しているデータを対象に集計を行いたい場合、

python

1 for k in range(30): 2 my_members = k_means.labels_ == k 3 dati = array[my_members, i]

で参照されるデータを対象にすればよろしいかと。

投稿2018/08/24 05:20

t_obara

総合スコア5488

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

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

0

http://www.heisei-u.ac.jp/ba/fukui/pdf/stattext05.pdf

重心というのは平均値のことですか?

投稿2018/08/23 22:32

mkgrei

総合スコア8560

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問