scikit-learnでテストデータセットを生成する

3062 ワード

転入先https://www.jiqizhixin.com/articles/2018-02-05-2
分類テストの問題
3つの分類問題:blobs、moons、circlesを見ます.
せんけいぶんかつ
make_blobs()関数は、ガウス分布を有するblobs点を生成するために使用することができる.生成blobsの数、生成サンプルの数、および一連の他の属性を制御できます.blobsの線形可分性を考慮して,この問題は線形分類問題にも適用できる.
次の例は、3つのblobsを有する2 Dサンプルデータセットを生成する多種類の分類予測問題である.各データには、2つの入力と0、1、または2つのクラスの値があります.
from sklearn.datasets.samples_generator import make_blobs
from matplotlib import pyplot
from pandas import DataFrame
# generate 2d classification dataset
X, y = make_blobs(n_samples=100, centers=3, n_features=2)
# dict key, label, dict DataFrame
df = DataFrame(dict(x=X[:,0], y=X[:,1], label=y))
colors = {0:'red', 1:'blue', 2:'green'}
fig, ax = pyplot.subplots()
#groupby 
grouped = df.groupby('label')
for key, group in grouped:
   group.plot(ax=ax, kind='scatter', x='x', y='y', label=key, color=colors[key])
pyplot.show()

ひせんけいぶんるい
make_moons()関数はバイナリ分類に使用され、1つの渦モード、または2つのmoonsが生成されます.moon形状のノイズ量と、生産するサンプルの数を制御できます.
この試験問題は非線形クラス境界を学習できるアルゴリズムに適用できる.次の例では、中程度のノイズのmoonデータセットを生成します.
from sklearn.datasets import make_moons
from matplotlib import pyplot
from pandas import DataFrame
# generate 2d classification dataset
X, y = make_moons(n_samples=100, noise=0.1)
# scatter plot, dots colored by class value
df = DataFrame(dict(x=X[:,0], y=X[:,1], label=y))
colors = {0:'red', 1:'blue'}
fig, ax = pyplot.subplots()
grouped = df.groupby('label')
for key, group in grouped:
   group.plot(ax=ax, kind='scatter', x='x', y='y', label=key, color=colors[key])
pyplot.show()

make_circles()関数は、データセットが同心円に落ちるバイナリ分類問題を生成します.もう一度、moonsテストの問題と同様に、形状中のノイズ量を制御することができます.この試験問題は複雑な非線形流行を学習できるアルゴリズムに適している.次の例では、一定のノイズを有するcirclesデータセットが生成される.
from sklearn.datasets import make_circles
from matplotlib import pyplot
from pandas import DataFrame
# generate 2d classification dataset
X, y = make_circles(n_samples=100, noise=0.05)
# scatter plot, dots colored by class value
df = DataFrame(dict(x=X[:,0], y=X[:,1], label=y))
colors = {0:'red', 1:'blue'}
fig, ax = pyplot.subplots()
grouped = df.groupby('label')
for key, group in grouped:
   group.plot(ax=ax, kind='scatter', x='x', y='y', label=key, color=colors[key])
pyplot.show()

回帰テストの問題
せんけいかいき
make_regression()関数は、線形関係を持つデータセットを入力および出力します.サンプル数、フィーチャー数、ノイズレベルなどを設定できます.このデータセットは線形回帰関数を学習できるアルゴリズムに適している.
次の例では、入力フィーチャーと出力フィーチャーの両方を有する適度なノイズを有する100の例が生成される.
from sklearn.datasets import make_regression
from matplotlib import pyplot
# generate regression dataset
X, y = make_regression(n_samples=100, n_features=1, noise=0.1)
# plot regression dataset
pyplot.scatter(X,y)
pyplot.show()

これらのテストセットでは、次のことができます.
  • 比較アルゴリズム.テスト問題を選択し、その問題の一連のアルゴリズムを比較し、パフォーマンスを報告します.
  • 問題を拡大します.テスト問題を選択して拡大を探索し,級数法で結果を可視化し,特定のアルゴリズムモデルスキルと問題規模を探索することもできる.

  • コードはblogcodessclearn_を参照testDataset.py