У меня есть набор данных о 50 000 выборок, и он содержит 2 объекта, где первый является двоичным, а второй - непрерывным.
Я хотел бы использовать python для использования метода кластеризации для создания 2 категорий.
PS : я не мог указать, когда первая категория ограничена точносоставлять правила.Мне нужно иметь категорию с большинством чисел = 0, т.е. моя цель состоит в том, чтобы в моих данных была часть, которую я должен устранить.Он имеет большинство значений col_A, равных 0, мне нужно удалить их, но я не знаю, где они ограничены
Мои данные выглядят так:
id Col_A Col_B
1 0 2
2 0 3
3 1 25
4 0 17
5 0 9
6 1 30
7 1 1
8 1 12
9 1 3
10 0 6
Я хотел бы получить 2 кластера
первая категория о строках, которые содержат небольшие числа, и большинство значений Col_A равны 0.
, а вторая категория должна содержать большечисла независимо от значений Col_A.
Категория 1 должна иметь:
id Col_A Col_B
1 0 2
2 0 3
5 0 9
7 1 1
9 1 3
10 0 6
и Категория 2 должна иметь:
id Col_A Col_B
3 1 25
4 0 17
6 1 30
8 1 12
Как навязать алгоритму кластеризации, что первая категория должна иметь большинство из 0 чисел в качестве значений Col_A
Я использовал следующий код, но он не работаетотлично.
from sklearn.cluster import KMeans
import numpy as np
data = np.array([[0, 2], [0, 3], [1, 25],[0, 17], [0, 9], [1, 30], [1, 1],[1, 12], [1, 3], [0, 6]])
kmeans = KMeans(n_clusters=2, random_state=0).fit(data)
kmeans.labels_
df = pd.DataFrame(data)
df['categories'] = kmeans.labels_
У меня есть некоторые проблемы, например, в случае «18», которые должны быть отнесены к категории 2.
Col_A Col_B Category
0 2 Cat_1
0 3 Cat_1
1 12 Cat_2
0 17 Cat_2
0 9 Cat_1
1 30 Cat_2
1 1 Cat_1
1 18 Cat_1
0 3 Cat_1
0 6 Cat_1
Когда я работаю над своими реальными данными, то есть с массивной выборкойЯ ошибаюсь в классификации.Как я могу исправить эту ситуацию