Как заменить scikit-learn (make_circle) на мой собственный набор данных?

#python #machine-learning #scikit-learn

#python #машинное обучение #scikit-learn

Вопрос:

Я пытаюсь интегрировать свой собственный набор данных в scikit learn. Мой набор данных был категориальными данными, и я кодировал числовые данные, в нем 3 столбца и 100 строк. Текущий набор данных scikit learn создается с помощью make_circle() .

 X, Y = make_circles(n_samples=n, noise=0.07, factor=0.4) 
  

Что я сделал?

Я читаю свой набор данных с помощью pandas.

 col_names = ['Relation', 'Entity1', 'Entity2']
# load dataset
pima = pd.read_csv("encode.csv", header=None, names=col_names)
pima.head()
  

Текущий вывод:

 Relation    Entity1     Entity2
 3       0       0
 0       1       2
 2       9       0
 3       5       3
 1       4       1
 2       6       0
 3       3       4
  

Но я хочу добавить этот набор данных на основе make_circle() в 2-мерные пространства.

Ответ №1:

Вы должны применить уменьшение размерности и уменьшить его до 2 измерений.

Вы можете использовать что-то вроде PCA или UMAP.

Проверьте это сообщение. Это должно быть очень полезно.

Использование UMAP:

 import umap

reduced = umap.UMAP().fit_transform(pima)
  

Использование PCA:

 from sklearn.decomposition import PCA

pca = PCA(n_components=2)
reduced = pca.fit_tranform(pima)
  

Комментарии:

1. Спасибо, это работает, как присвоить его X, and Y переменной, как это было в make_circle()

2. ну, Y были бы ваши ярлыки. Либо вы их знаете и берете откуда-то, где они у вас есть, либо вам нужно применить некоторую кластеризацию, например HDBSCAN, а затем получить метки.

3. Как он генерируется здесь, X, Y = make_circles(n_samples=n, noise=0.07, factor=0.4) потому что я не использовал метки, у меня просто есть три столбца, которые показывают связь между сущностями.

4. вы можете проверить здесь github.com/scikit-learn/scikit-learn/blob/7b136e9/sklearn/… как Y генерируется. Здесь scikit-learn.org/stable/modules/generated /… является документацией make_circles . Я не совсем уверен, чего вы пытаетесь достичь. Я не знаю, каково было исходное состояние данных. Не уверен, что вы тоже пытаетесь предсказать. Чтобы было ясно — под метками я подразумеваю вашу прогнозирующую переменную.