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

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

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

NumPyはPythonのプログラミング言語の科学的と数学的なコンピューティングに関する拡張モジュールです。

Python

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

Q&A

解決済

1回答

831閲覧

決定木を使用して散布図の境界線を設定する

py-python

総合スコア14

NumPy

NumPyはPythonのプログラミング言語の科学的と数学的なコンピューティングに関する拡張モジュールです。

Python

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

0グッド

0クリップ

投稿2018/11/13 06:49

csvのデータを用いて,散布図(x,y)を作成します。
値に応じて境界線を引きたく、決定木を使用して作成したいのですがうまくいきません。
色分けとしては、値の小さい順から
'white', 'green', 'purple', 'sienna', 'deepskyblue', 'orange', 'red', 'darkgrey'

【CSVデータ】1列目:x、2列目:y、3列目:値
https://d.kuku.lu/e1245ec59c

xの幅は190-300、yの幅は0-15です。

図の作成方法を教えてください。よろしくお願いします。

import os import sys import numpy import numpy as np import pandas as pd import matplotlib.pyplot as plt import matplotlib.cm as cm from matplotlib.colors import ListedColormap import glob from PIL import Image import PIL from sklearn import tree from sklearn.tree import DecisionTreeClassifier path = "/media/student/data1" path1 = "/media/student/data1/csv/" datalist1 = glob.glob(path1 + "*.csv") for data1 in datalist1: name1 = data1[len(path1)+4:-4] if name1 : print name1 + "..." + "OK" cloud = pd.read_csv(data1) clf = DecisionTreeClassifier(max_depth=2, random_state = 0) # make instance max_depth:tree depth my_cmap = ListedColormap(['white', 'green', 'purple', 'sienna', 'deepskyblue', 'orange', 'red', 'darkgrey']) plt.title("title") plt.xlabel("X") plt.ylabel("Y") plt.imshow(x=cloud[:,1], y=cloud[:,2], c=cloud[:,3], cmap=my_cmap , extent=(190,300,0,12), interpolation='none') pil_img = Image.fromarray(np.uint8(clf)) print "cloud...ok" outdata = path + "/outdata5/" +name + ".png" plt.savefig(outdata)

途中まで作成したコードです。間違っている部分が多いので
参考程度でよろしくお願い申し上げます。

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

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

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

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

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

guest

回答1

0

ベストアンサー

こんな感じでしょうか。決定境界はちょっとむずいので、分類結果の領域ごとに背景色を変えています。

あなたの環境やデータで直接動作するコードではないので、参考程度でよろしくおねがいします。

python

1# このへんも参考に 2# https://scikit-learn.org/stable/auto_examples/classification/plot_classifier_comparison.html#sphx-glr-auto-examples-classification-plot-classifier-comparison-py 3 4 5import numpy as np 6import pandas as pd 7import matplotlib.pyplot as plt 8from matplotlib.colors import ListedColormap 9from sklearn.tree import DecisionTreeClassifier 10 11# アップされているデータをdata.csvとして保存しました。 12cloud = pd.read_csv("data.csv", header=None) 13 14dt = DecisionTreeClassifier(max_depth=None, random_state=0) 15dt.fit(cloud.iloc[:,0:2], cloud[2]) 16 17x = np.arange(190, 300, 0.1) 18y = np.arange(0, 10, 0.01) 19xx, yy = np.meshgrid(x, y) 20 21zz = dt.predict(np.vstack([xx.ravel(), yy.ravel()]).T).reshape(xx.shape) 22 23my_cmap = ListedColormap(['white', 'green', 'purple', 'sienna', 'deepskyblue', 'orange', 'red', 'darkgrey']) 24plt.title("title") 25plt.xlabel("X") 26plt.ylabel("Y") 27plt.scatter(x=cloud[0], y=cloud[1], c=cloud[2], cmap=my_cmap) 28plt.contourf(xx, yy, zz, cmap=my_cmap, alpha=.2) 29plt.savefig("result.png")

イメージ説明

投稿2018/11/13 09:19

hayataka2049

総合スコア30933

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

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

py-python

2018/11/13 23:59

ありがとうございます。出来ました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問