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 типа по их конструкции.
    Поверхностный насос. Как понятно из названия, такой агрегат устанавливают на сухом грунте, а забор воды осуществляется с поверхности водоема. Их часто ставят на некотором удалении от мест забора и сброса воды, что позволяет не портить ландшафтный дизайн на даче. Однако есть и отдельный подвид таких устройств – поплавочный насос. Этот подвид считается самым компактным аппаратом для перекачки жидкости. Почти все механизмы устанавливают в водонепроницаемый поплавок, который свободно держится на поверхности искусственного пруда (или другого водоема на участке). Часто их маскируют под буйки или бакены, чтобы вписать их в дизайн участка на даче.
    Все виды поверхностных насосов считаются наиболее экономичными по показателю количества перекачанной воды/ потреблению электроэнергии.
    Устройство водопада с насосом.
    Такие устройства легко доступны для обслуживания – к замене масла, очистке от набившегося ила, проведению диагностики компрессорной установки ит.д. В эксплуатации они лишены каких-либо серьезных недостатков. Они имеют относительно невысокую цену (среди насосов) и имеются в продаже в любом строительном супермаркете или на рынке. Очень часто их недостатком считают частое засорение илом или донным песком, однако это вызывается не конструктивной недоработке помпы, а неправильно установленным водозаборником – он не должен быть близко ко дну или берегу.
    Погружающийся вид насосов. Они частично или полностью погружаются в перекачиваемую из пруда воду. В процессе эксплуатации их почти не видно – они скрыты слоем воды. Применяются они крайне редко ввиду более высокой стоимости, сложностей при обслуживании и больших энергозатратах в процессе работы. Однако в некоторых случаях используются именно они. Например, в ситуации когда надо спрятать агрегат под поверхностью воды. Другой случай применения – источник воды не искусственный (открытый) водоем, а скважина или колодец, которые имеют глубину более 10 метров. В этой ситуации только погружающиеся насосы могут обеспечивать подъем воды на поверхность.
    Помимо разделения на способ и место монтажа, насосы разделяют и по принципу работы. Основные типы конструкций – вибрационная и центробежная. Вибрационные помпы имеют в своей конструкции мембрану, одна сторона которой находится в воде, а с другой стороны находится вибрационное устройство. После пуска вибрационного устройства, происходит деформация (сокращение) мембраны. Мембраной создается разница давлений, что приводит к перекачке жидкости.
    К достоинству такой конструкции следует отнести то, что работающий механизм практически не перегревается. Это связано с тем, что насос полностью погружен в воду, и вода является естественным охладителем.
    Устройство насоса для водопада на даче.
    Однако электрическая часть таких насосов подвержена перегреву, также рабочий механизм может перегреться при засорении. Поэтому, приобретая такой тип, необходимо выбрать модель, в которой будет встроенный термовыключатель (для защиты от перегрева). На это следует обратить внимание особенно в случае его установки на глинистой почве. Следующий момент, на который следует обратить внимание при приобретении – расположение водозаборника. Настоятельно рекомендуется приобретать аппараты, у которых водозаборник располагается в нижней части конструкции помпы – это существенно повышает производительность устройства, что экономит электроэнергию. В процессе эксплуатации такие устройства часто зарываются в ил, что требует их немедленного извлечения оттуда. Извлекать их следует только при работающем аппарате.
    Центробежные агрегаты имеют в своей конструкции несколько колец (реже имеют только 1), снабженных лопастями. Эти кольца крепятся к валу, а интервал между ними заполняется водой. После включения кольца начинают вращаться, что создает перепад давлений. Разница в давлении приводит к накачке воды. Сегодня такие устройства считаются наиболее совершенными. Они более дешевы (из-за более дешевых материалов изготовления и конструкции). Также они имеют более длительный срок эксплуатации, простоту в обслуживании и лучшую эргономику.
    Выбор типа насоса зависит от используемого источника воды (для работы на прудах лучше взять центробежный, для работы в колодцах и скважинах – вибрационный) и ландшафтного дизайна, который имеет дача.

    дополнительно можно узнать –
    насосы для скважины
    а также: leo
    Купить Глубинный Насос Недорого
    leo насосыне станции

Leave a Reply

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