Stronger features vs. stronger algorithms in ML

I’ve been working with machine learning a bit during the last couple of years. I’ve had great teachers who showed me how to use the algorithms and where to start learning. Thanks to them I understood the importance of different elements of the ML tool chain – data, storage, algorithms, hardware.

I’ve worked on the problem of how to extract features of source code so that I can use them to predict if a specific line of code has a defect or not, in particular if the defect can be caught during code reviews. I’ve spent about a year on this problem and tested all kinds of combinations, from static code analysis to using word embedding, dictionaries and other NLP mechanisms to understand the code. Nothing really worked great. I got predictions that were a bit better than then chance.

What was the problem? Well, the problem was the quality of the input data. Since I extracted data, and features from this data, automatically from large code bases (often over 3 MLOC), I often encountered the following problems:

Labeling – I could not pinpoint exactly where the problem was, which meant that I needed to approximate the label, which led to the next problem,

Consistency – when one line was considered good by one person, it could be considered problematic by another one; this meant that I needed to decide how to treat lines that are “suspicious”, and

Scales – when extracting features, some of them were on scale of 1 to 100, whereas some other ones were on the scale from 1 to 3; this meant that I needed a good scaler to get the features right.

So, here I am, working on the next implementation of the feature discovery algorithm. The algorithm that can extract features in such a way that each objects has distinct characteristics, yet the number of features is as small as possible to characterize each object. The algorithm helped me to boost the accuracy of the classification from ca. 50% to over 96%.

I’ve discovered that using simple ML algorithms on a good data set trumps everything else. I used AdaBoost with scaling of features on the good data set, and that was at least twice as good as using LSTM models with word embeddings (which were not bad anyways) for the same purpose.

My advice, therefore, is the following:

Start with a simple classification/ML algorithm and do not go into neural networks or other advanced methods,

Learn your data and look at it from several angles; use business intelligence and statistics to understand the dependencies between features (PCA, t-SNE) and chew on the data as long as you can, and

Focus on extracting features from your data, rather than expecting magic from ML; no algorithm can trump good input data and no filtering can trump a good “featurizer”

 pixabay
Image source: pixabay

Author: Miroslaw Staron

I’m professor in Software Engineering at IT faculty. I usually blog about interesting articles (for me) and my own reflections on the development of Software Engineering, AI, computer science and automotive software.

0 thoughts on “Stronger features vs. stronger algorithms in ML”

  1. Как выбрать насос для бассейна: советы новичкам.
    Если вы решили установить на даче или участке открытый бассейн, то должны заранее позаботиться о выборе насоса и фильтра для него. Любой водоем со стоячей водой рано или поздно превращается в болото с водорослями, насекомыми и прочими водными «обитателями». Если вы хотите, чтобы в вашем бассейне всегда была кристально чистая и прозрачная вода, тогда обязательно купите насос для бассейна.
    Зачем нужен насос для бассейна.
    Нужен ли вообще насос? Существует только один вариант, когда насос вам не понадобится – при использовании детского надувного бассейна. Глубина его небольшая, поэтому намного проще вылить воду самостоятельно. Во всех других ситуациях наличие насоса – обязательно.
    Сколько насосов нужно использовать для бассейна.
    Количество насосов напрямую зависит от размеров и вместительности бассейна. Если вы выбрали каркасный небольшой бассейн, то имеющегося в комплектации одного насоса будет достаточно.
    Если же у вас большой стационарный бассейн нуждается в 2-3 насосах, где главный агрегат будет отвечать за фильтрацию, второй будет создавать противоток, а третий запускать ультрафиолетовую установку или же включать фонтаны. Помните, чем больше в бассейне будет зон для релакса, типа джакузи, водопадов, фонтанов, тем больше насосов понадобится.
    Дренажный насос в бассейне (видео)
    Классификация насосов.
    Циркуляционные. Такие насосы используют, как вспомогательные. С их помощью можно создать пузырьки или фонтан в конкретном месте бассейна. Они всасывают в озонатор воду, после чего уже обогащенную выпускают обратно. Для частного использования можете подобрать низкопарный насос, а вот для бассейнов с водными аттракционами и фонтанами необходимо выбирать высокопарные модели, где мощность превышает 2кВт. Самовсасывающие . Обеспечивают фильтрацию воды в бассейне. Данные модели насосов используют, как основное оборудование в паре с фильтрами. При покупке обращайте внимание на мощность: насос должен быть такой же мощности, что и фильтр, иначе вся система быстро выйдет из строя. Устанавливая дома насос, не забудьте и о запасном устройстве. Устанавливать его нужно одновременно с основным, чтобы в случае неполадки одного из устройств, запустить дополнительное.
    Тепловые или насосы с подогревом. Необходимы для поддержания теплой температуры воды даже в зимние периоды. Насос, помимо перекачки воды, еще и подогревает воду в бассейне. Интересный факт, такой подогрев воды обходится значительно дешевле газового отопления. Экономия оценивается в пятикратном размере! Фильтрующие. Пожалуй, самый маленький и компактный насос из всех представленных. Чаще всего такими моделями комплектуют каркасные бассейны. В эксплуатации они просты и понятны, а пользу переоценить просто невозможно: насос фильтрует воду, убирая мусор, листья и предотвращая образование водорослей на стенках.
    Тепловой насос для бассейна (видео)
    На что обращать внимание при покупке насоса.
    Назначение . Насос, прежде всего, должен соответствовать своему назначению. Например, покупка мощного насоса для небольшого бассейна повлечет дополнительные расходы на электричество. Важно, чтобы насос соответствовал вашим запросам. Уровень шума. Очень часто данный критерий не учитывается при выборе. А зря! Ведь слишком шумный насос через пару дней работы может стать настоящей пыткой и легко испортит отдых. Лучше всего выбирать более тихие модели. Защита. При покупке обязательно проверьте систему защиты насосной системы, целостность изоляции и степень защиты двигателя. Наличие фильтра. В некоторых моделях насосов установлены фильтры грубой очистки. Именно они предотвращают попадание внутрь бассейна мелких предметов, листьев и прочих примесей. Если такого фильтра в насосе нет, тогда обязательно купите дополнительные устройства фильтрации.
    Наличие системы для подогрева воды . Заранее подумайте, хотите ли вы подогревать воду? Если хотите, то стоит обратить внимание на тепловые насосы, в которых уже установлен механизм подогрева. В противном случае, после установки обычного насоса, вам придется покупать дополнительно обогреватель. Репутация . Обязательно обращайте внимание на производителя. С выбором насосов мы сталкиваемся не каждый день, поэтому перед покупкой посмотрите отзывы о производителе, узнайте его историю.
    http://7filtrov.shop

    https://7filtrov.shophttps://7filtrov.shop/upload/iblock/6bd/6bd00a6a8dafb0da43292704e59c5dcf.jpg

    Смотреть вот здесь –
    https://7filtrov.shop/catalog/nasosy/ – насос ручеек купить
    https://7filtrov.shop/catalog/nasosy/nasosy_dlya_skvazhin/ – где купить насос для скважины
    https://7filtrov.shop/catalog/nasosy/nasosy-drenazhnye/ – дренажные насосы для откачки воды
    https://7filtrov.shop/catalog/nasosy/nasosnye_stantsii/ – система насосной станции
    https://7filtrov.shop/catalog/nasosy/nasosy_poverkhnostnye/ – поверхностный насос для скважины
    https://7filtrov.shop/catalog/nasosy/nasosy_kolodeznye/ – насосы для колодцев погружной какой лучше
    Заходите на сайт!
    источник – https://7filtrov.shop

Leave a Reply

Your email address will not be published. Required fields are marked *