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

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

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

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

Q&A

解決済

1回答

1340閲覧

Xとlabels_trueの値がそれぞれ何なのかわからない

退会済みユーザー

退会済みユーザー

総合スコア0

Python

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

0グッド

0クリップ

投稿2017/12/13 01:33

Xとlabels_trueの値がそれぞれ何なのかわからないです。

import numpy as np import pandas as pd from sklearn.datasets import make_blobs %matplotlib inline import matplotlib.pyplot as plt X, labels_true = make_blobs( n_samples=1000, centers=[[-5,-5],[0,0],[5,5]], cluster_std=1.0, random_state=0) print(X) print(labels_true) df = pd.DataFrame(np.hstack([X, labels_true.reshape(len(labels_true),1)]),columns=["X0","X1","label"]) col = df.label.map({0:'b', 1:'g', 2:'r'}) df.plot(x='X0', y='X1', kind='scatter', c=col, colorbar=False, figsize=(3,3))

というサンプルコードがあって、
print(X)では

[[-6.04855297 -6.42001794] [-3.23594765 -4.59984279] [ 4.50420451 6.21657771] ..., [ 0.60711167 -1.04817041] [ 1.63159743 0.37775917] [ 4.02759711 6.34622107]]

と出力されて、print(labels_true)では

[0 0 2 1 2 1 0 0 2 1 1 0 2 0 2 0・・・]

と出力されました。
一見するとone-hot encodingのようですが、何の次元を取っているのかわかりません。

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

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

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

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

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

guest

回答1

0

ベストアンサー

修正:
中心の点が十分離れている場合、以下修正削除したコメントは正しいのですが、紛らわしいので消しました。
centers=[[-5,-5],[0,0],[5,5]]に数字を当てて、それぞれの点から1番近いものの数字ではないでしょうか。
例えば
[-5,-5] -> 0
[0,0] -> 1
[5,5] -> 2
のように数字を当てます。
次にあるXの点を選びます。
例えば、
[0.1,0.2]
するとこの点は[0,0]が最寄りなのでラベルは1になります。

実際はこの逆のことをやっていて、)ラベル0の点を生成したいとします。
[-5,-5]を中心とする確率分布から1個点を選びます。
それをXに入れます。
0をlabelに入れます。

同様にラベル1の点を生成したいとします。
[0,0]を中心とする確率分布から1個点を選びます。
それをXに入れます。
1をlabelに入れます。

以後繰り返し。

中心が遠い場合
遠い場合

中心が近い場合
近い場合

※なんと気づいたら修正線の機能が追加されていました。

投稿2017/12/13 02:29

編集2017/12/13 09:01
mkgrei

総合スコア8560

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

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

退会済みユーザー

退会済みユーザー

2017/12/13 02:42

ありがとうございます。[[-5,-5],[0,0],[5,5]]に0〜2の1番近い数字を当てているということでしょうか?
magichan

2017/12/13 04:51 編集

実際に行っていることは、 0 :中心(-5,-5) 標準偏差 1.0 のガウス分布 1 :中心( 0, 0) 標準偏差 1.0 のガウス分布 2 :中心( 5, 5) 標準偏差 1.0 のガウス分布 という3つの分布からの乱数により、計1000個のデータを発生させ、 そのデータを X に、そのデータがどの分布から生成されたのかをlabels_true に格納しているのかと思います。 当然、分布が重なっていることもありますので、単純に近いとは少し違うかとおもいます。
mkgrei

2017/12/13 05:03

magichanさん、仰る通りです。 誤解を与えかねない説明になっていますね。 あとで修正いたします。
mkgrei

2017/12/13 09:04

修正しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問