Вложенные ресурсы в пространстве имен form_for

Spark 2.0.0 +

На первый взгляд все Transformers и Estimators реализуют MLWritable. Если вы используете Spark & ​​lt; = 1.6.0 и испытываете некоторые проблемы с сохранением модели, я бы предложил версию переключения.

Spark> = 1.6

Так как Spark 1.6 можно сохранить ваши модели с помощью метода save. Потому что почти каждый model реализует интерфейс MLWritable . Например, у него есть LinearRegressionModel , и поэтому вы можете сохранить свою модель на нужный путь, используя ее.

Spark & ​​lt; 1.6

Я считаю, что вы делаете неверные предположения здесь.

Некоторые операции над DataFrames можно оптимизировать, и это переводит на улучшенную производительность по сравнению с обычным RDDs. DataFrames обеспечивают эффективное кэширование и SQLish API, возможно, легче понять, чем RDD API.

ML Трубопроводы чрезвычайно полезны, и инструменты, такие как кросс-валидатор или разные оценщики, просто должны быть в любом конвейере машины, и даже если ни одно из вышеперечисленных не особенно сложно реализовать поверх низкоуровневого MLlib API, гораздо лучше иметь готовое к использованию универсальное и относительно хорошо проверенное решение.

Пока все хорошо, но есть несколько проблем:

  • насколько я могу скажите простые операции на DataFrames, как select или withColumn, показывают аналогичную производительность с его эквивалентами RDD, такими как map,
  • , в некоторых случаях увеличение количества столбцов в типичном конвейере может фактически ухудшить по сравнению с хорошо настроенными преобразованиями низкого уровня. Вы можете, конечно, добавить drop-column-transformers на пути исправления для этого,
  • многие ML-алгоритмы, включая ml.classification.NaiveBayes , являются просто обертками вокруг его API mllib
  • Алгоритмы PySpark ML / MLlib делегируют фактическую обработку своим коллегам Scala,
  • последнее, но не менее важное: RDD по-прежнему существует, даже если он хорошо скрыт за API DataFrame

Я считаю, что в конце дня то, что вы получаете с помощью ML over MLLib, довольно элегантно, API высокого уровня. Единственное, что вы можете сделать, это объединить оба для создания настраиваемого многоэтапного конвейера:

  • использовать ML для загрузки, очистки и преобразования данных,
  • извлечь требуемые данные (см. например, extractLabeledPoints ) и перейти к алгоритму MLLib,
  • добавить пользовательскую перекрестную проверку / оценку
  • сохранить MLLib модель, используя метод ваш выбор (модель искры или PMML )

Это не оптимальное решение, но лучшее, что я могу представить с учетом текущего API.

30
задан nlaq 27 April 2010 в 00:56
поделиться

1 ответ

Отредактированное решение на случай, если люди не читают реакции:

<%= form_for [:admin, @person, @image] do |f| %>

Старый ответ:

У меня есть проект с пространством имен администратора и ресурсами People и Images, именно так я создаю свой form_for в rails3, я пока не нашел способа сделать его чище ...

<%= form_for [@person, @image], :url => admin_person_images_path do |f| %>
46
ответ дан 27 November 2019 в 23:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: