Лучшая панель инструментов MATLAB, которая реализует Регрессию Вектора Поддержки? [закрытый]

Это сложно, потому что регулярное выражение может иметь несколько совпадений, и каждый захват может совпадать несколько раз в одном глобальном сопоставлении.

Может быть, что-то вроде этого (игровая площадка) :

fn main() {
    let re = Regex::new(r"(?P\d{4})-(?P\d{2})-(?P\d{2})").unwrap();
    let text = "2012-03-14";
    let caps = re.captures(text).unwrap();
    let dict: HashMap<&str, &str> = re
        .capture_names()
        .flatten()
        .filter_map(|n| Some((n, caps.name(n)?.as_str())))
        .collect();
    println!("{:#?}", dict);
}

Это выводит:

{
    "y": "2012",
    "d": "14",
    "m": "03"
}

Код прост, когда вы понимаете, что имена захвата не доступно от самого Match, но от родителя Regex. Вы должны сделать следующее:

  1. Вызовите capture_names(), итерация будет равна Option<&str>.
  2. flatten() итерация, которая удалит None и развернуть значения &str.
  3. filter_map() имена захвата в список кортежей (имя, значение) типа (&str, &str). filter необходим для удаления отсутствующих снимков (благодаря @Anders).
  4. collect()! Это просто работает, потому что HashMap реализует черту FromIterator<(K, V)>, поэтому итератор (&str, &str) собирает в HasMap<&str, &str>.

11
задан Amro 2 May 2012 в 13:00
поделиться

4 ответа

Я использовал libSVM. Это довольно быстро и легко, и обеспечивает некоторые полезные инструменты, также. Существуют некоторые примеры его используемы здесь. Другая хорошая вещь состоит в том, что существуют реализации в C++ и Java также поэтому, если Вы должны будете для разработки за пределами Matlab (для превращения прототипа во что-то быстрое, например), то у Вас будет знакомый интерфейс для работы с.

2
ответ дан 3 December 2019 в 13:09
поделиться

Без сомнения Cawley является лучшим.

http://theoval.sys.uea.ac.uk/svm/toolbox/

0
ответ дан 3 December 2019 в 13:09
поделиться

Вы всегда можете использовать реализацию SVM в MathWorks в Bioinformatics Toolbox с функциями: svmtrain и svmclassify , которые, как обычно, имеют отличную документацию

-1
ответ дан 3 December 2019 в 13:09
поделиться

Это не дает прямого ответа на ваш вопрос, но если вы хотите ускорить M-скрипт, посмотрите на встроенный набор инструментов Matlab и функции MEX. По сути, вы можете использовать эти инструменты для компиляции ваших M-скриптов, я сделал это и получаю минимум прироста производительности на порядок. В MW говорят, что можно добиться 100-кратного улучшения.

-4
ответ дан 3 December 2019 в 13:09
поделиться
Другие вопросы по тегам:

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