WedX - журнал о программировании и компьютерных науках

AWS Sagemaker | как обучать текстовые данные | Для классификации билетов

Я новичок в Sagemaker и не знаю, как классифицировать ввод текста в AWS sagemaker,

Предположим, у меня есть Dataframe с двумя полями, такими как «Билет» и «Категория». Оба являются вводом текста. Теперь я хочу разделить его тестовый и обучающий набор и загрузить в обучающую модель Sagemaker.

X_train, X_test, y_train, y_test = model_selection.train_test_split(fewRecords['Ticket'],fewRecords['Category'])

Теперь, когда я хочу выполнить извлечение функции TD-IDF, а затем преобразовать ее в числовое значение, выполните эту операцию

tfidf_vect = TfidfVectorizer(analyzer='word', token_pattern=r'\w{1,}', max_features=5000)
tfidf_vect.fit(fewRecords['Category'])
xtrain_tfidf =  tfidf_vect.transform(X_train)
xvalid_tfidf =  tfidf_vect.transform(X_test)

Когда я хочу загрузить модель в Sagemaker, чтобы выполнить следующую операцию, например

buf = io.BytesIO()
smac.write_numpy_to_dense_tensor(buf, xtrain_tfidf, y_train)
buf.seek(0)

Я получаю эту ошибку

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-36-8055e6cdbf34> in <module>()
      1 buf = io.BytesIO()
----> 2 smac.write_numpy_to_dense_tensor(buf, xtrain_tfidf, y_train)
      3 buf.seek(0)

~/anaconda3/envs/python3/lib/python3.6/site-packages/sagemaker/amazon/common.py in write_numpy_to_dense_tensor(file, array, labels)
     98             raise ValueError("Label shape {} not compatible with array shape {}".format(
     99                              labels.shape, array.shape))
--> 100         resolved_label_type = _resolve_type(labels.dtype)
    101     resolved_type = _resolve_type(array.dtype)
    102 

~/anaconda3/envs/python3/lib/python3.6/site-packages/sagemaker/amazon/common.py in _resolve_type(dtype)
    205     elif dtype == np.dtype('float32'):
    206         return 'Float32'
--> 207     raise ValueError('Unsupported dtype {} on array'.format(dtype))

ValueError: Unsupported dtype object on array

Кроме этого исключения, я не понимаю, правильно ли это, поскольку TfidfVectorizer преобразует серию в матрицу.

Код хорошо предсказывает на моем локальном компьютере, но не уверен, как сделать то же самое на Sagemaker. Все упомянутые там примеры слишком длинные и не для человека, который все еще добрался до SciKit Learn.


Ответы:


1

Результат TfidfVectorizer - это scipy разреженная матрица, а не простой массив numpy.

Так что либо используйте другую функцию, например:

write_spmatrix_to_sparse_tensor

Записывает scipy разреженную матрицу в разреженный тензор

Дополнительные сведения см. В этой проблеме.

ИЛИ сначала преобразуйте вывод TfidfVectorizer в плотный массив numpy, а затем используйте приведенный выше код

xtrain_tfidf =  tfidf_vect.transform(X_train).toarray()   
buf = io.BytesIO()
smac.write_numpy_to_dense_tensor(buf, xtrain_tfidf, y_train)
...
...
29.08.2018
  • спасибо за ответ, теперь я застрял в другой проблеме. Здесь я не могу это объяснить, поэтому создал новый поток, пожалуйста, посмотрите stackoverflow.com/questions/52078133/ 29.08.2018
  • Новые материалы

    Я хотел выучить язык программирования MVC4, но не мог выучить его раньше, потому что это выглядит сложно…
    Просто начните и учитесь самостоятельно Я хотел выучить язык программирования MVC4, но не мог выучить его раньше, потому что он кажется мне сложным, и я бросил его. Это в основном инструмент..

    Лицензии с открытым исходным кодом: руководство для разработчиков и создателей
    В динамичном мире разработки программного обеспечения открытый исходный код стал мощной парадигмой, способствующей сотрудничеству, инновациям и прогрессу, движимому сообществом. В основе..

    Объяснение документов 02: BERT
    BERT представил двухступенчатую структуру обучения: предварительное обучение и тонкая настройка. Во время предварительного обучения модель обучается на неразмеченных данных с помощью..

    Как проанализировать работу вашего классификатора?
    Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

    Работа с цепями Маркова, часть 4 (Машинное обучение)
    Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

    Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
    Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

    Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
    Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..


    Для любых предложений по сайту: [email protected]