SDV генерирует неправильные значения для хеш-подобных полей при создании синтетических данных из файла CSV"Python

Программы на Python
Ответить
Anonymous
 SDV генерирует неправильные значения для хеш-подобных полей при создании синтетических данных из файла CSV"

Сообщение Anonymous »

Я использую SDV для создания фиктивных данных путем извлечения реальных данных и метаданных из существующего файла CSV и последующего сохранения фиктивных данных в новый файл CSV.
Вот мой код:

Код: Выделить всё

import pandas as pd
from sdv.metadata import Metadata
from sdv.single_table import GaussianCopulaSynthesizer

data = pd.read_csv('file.csv', sep=';')
metadata = Metadata.detect_from_dataframe(
data=data,
table_name='test'
)

synthesizer = GaussianCopulaSynthesizer(metadata)
synthesizer.fit(data)
synthetic_data = synthesizer.sample(10)

synthetic_data.to_csv('synthetic_file.csv', index=False, sep=';')
Моя проблема заключается в том, что SDV неправильно идентифицирует хэш-подобные столбцы/поля. Например, поле с именем ID в моих данных содержит такие значения, как:

Код: Выделить всё

4959478426DF15EE67AZBED5B0B99EDB848597F2
AB28A95B91DE6637DE8D7728D6C945EFFC58F029
D304CE66B9204C637C8BA1B75B2952495C66321F
Но в синтетическом выводе SDV генерирует такие значения, как:

Код: Выделить всё

sdv-id-sVCqLP
sdv-id-CjXnSq
sdv-id-HuiFjs
Я попробовал явно указать тип поля, используя метаданные.update_column:

Код: Выделить всё

metadata.update_column(
table_name='test',
column_name='ID',
sdtype='id',
)
Но результаты остались прежними. SDV по-прежнему заменяет хэш-подобные значения общими синтетическими идентификаторами. Я понимаю, что могу использовать собственный генератор для создания хэшей вручную, но это нарушит логику отношений, предоставляемую SDV.
Как я могу заставить SDV генерировать синтетические данные для хеш-подобных полей, пока сохранение логики повторения из исходного набора данных?

Подробнее здесь: https://stackoverflow.com/questions/792 ... hetic-data
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»