Эти массивы разрежены, и я хотел бы уменьшить их размер с помощью SVD (или одного из Snowpark ml. modeling.decomposition).
Игрушечный пример фрейма данных:
Код: Выделить всё
df = session.sql("""
select 'doc1' as doc_id, array_construct(0.1, 0.3, 0.5, 0.7) as doc_vec
union
select 'doc2' as doc_id, array_construct(0.2, 0.4, 0.6, 0.8) as doc_vec
""")
print(df)
# DOC_ID | DOC_VEC
# doc1 | [ 0.1, 0.3, 0.5, 0.7 ]
# doc2 | [ 0.2, 0.4, 0.6, 0.8 ]
Код: Выделить всё
from snowflake.ml.modeling.decomposition import TruncatedSVD
tsvd = TruncatedSVD(input_cols = 'doc_vec', output_cols='out_svd')
print(tsvd)
out = tsvd.fit(df)
Код: Выделить всё
File "snowflake/ml/modeling/_internal/snowpark_trainer.py", line 218, in fit_wrapper_function
args = {"X": df[input_cols]}
~~^^^^^^^^^^^^ File "pandas/core/frame.py", line 3767, in __getitem__
indexer = self.columns._get_indexer_strict(key, "columns")[1]
KeyError: "None of [Index(['doc_vec'], dtype='object')] are in the [columns]"
я подозреваю, что массив Snowpark необходимо преобразовать в np.ndarray перед передачей в базовый sklearn.decomposition .TruncatedSVD
Может кто-нибудь указать мне какой-нибудь пример использования массивов Snoflake в качестве входных данных для моделей Snowpark?
Подробнее здесь: https://stackoverflow.com/questions/780 ... omposition