2017-12-24 3 views
0

sklearn.datasets.make_classification을 사용하여 선형 분리 가능 테스트 데이터 세트를 생성합니다. 그러나 생성 된 각 데이터 세트는 선형 분리 가능하지 않습니다. sklearn.datasets.make_classification을 사용하여 선형 분리 가능 데이터 세트를 생성 할 수 있습니까? 내 코드는 다음과 같습니다.sklearn.datasets.make_classification을 사용하여 선형 분리형 데이터 집합을 생성하는 방법은 무엇입니까?

samples = make_classification(n_samples=100, n_features=2, n_redundant=0, n_informative=1, 
           n_clusters_per_class=1, flip_y=-1) 

답변

1

"선형 분리 가능"옵션은 ​​없지만 선형으로 분리 할 수없는 경우 데이터 세트를 거부하고 다른 데이터 세트를 생성 할 수 있습니다. 이처럼 :

separable = False 
while not separable: 
    samples = make_classification(n_samples=100, n_features=2, n_redundant=0, n_informative=1, n_clusters_per_class=1, flip_y=-1) 
    red = samples[0][samples[1] == 0] 
    blue = samples[0][samples[1] == 1] 
    separable = any([red[:, k].max() < blue[:, k].min() or red[:, k].min() > blue[:, k].max() for k in range(2)]) 
plt.plot(red[:, 0], red[:, 1], 'r.') 
plt.plot(blue[:, 0], blue[:, 1], 'b.') 
plt.show() 

sets

수직 또는 수평 분리를 위해이 테스트 만하지만, 사람들은 당신이 어쨌든 설치를 일이 기대할 수있는 것들이다.

또한 class_sep 인수를 늘리면 분리가 발생할 가능성이 높아집니다.

관련 문제