#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
. Я не совсем уверен, чего вы пытаетесь достичь. Я не знаю, каково было исходное состояние данных. Не уверен, что вы тоже пытаетесь предсказать. Чтобы было ясно — под метками я подразумеваю вашу прогнозирующую переменную.