Я новичок в обучении машинам и раньше не использовал scikit-learn. Я работаю над проектом. В рамках проекта мне нужно подготовить алгоритм машинного обучения, чтобы классифицировать некоторые наблюдения на отдельные классы. Я обработал наблюдения с датчика, чтобы получить некоторые данные. Но проблема с обработанными данными заключается в том, что она представляет собой вектор разной длины для разных наблюдений.Уменьшите размерность данных с помощью подгонки кривой
Это изображение показывает некоторые данные. Зеленая линия - это необработанные данные после применения фильтра Гаусса, а красная линия показывает полиномиальность 16 градусов, соответствующую данным. Первая строка состоит из данных с 3 пиками, вторая строка содержит данные с 4 пиками, а 3-я строка содержит данные с 5 пиками. Я хочу иметь возможность классифицировать данные на отдельные классы.
В настоящее время я планирую использовать коэффициенты полинома в качестве моего вектор-функции. Первая строка просто прекрасна, но в случаях с большим числом пиков полином дает плохое соответствие и не может привести к надлежащей классификации. Я пробовал использовать полиномы более высокой степени, но это приводит к ошибкам с меньшим числом пиков. Простое подсчет числа пиков нельзя использовать для классификации, потому что это всего лишь подмножество нескольких классов, классификация будет также зависеть от относительных размеров и разделения наблюдаемых пиков, но эта информация не очень ясна в полиномиальном подходе для большее количество пиков.
Я хочу знать, если есть
- Некоторые другие методы, вместо того, чтобы пытаться соответствовать полином, который может помочь мне, чтобы сгенерировать вектор признаков для классификации данных.
- Способ визуализации данных высокой размерности в питоне
EDIT:
Я теперь фитинг сплайна вместо полинома к данным с использованием scipy.interpolate.UnivariateSpline
и генерирует гораздо лучше подходит. Теперь я могу использовать расположение узлов и коэффициенты сплайна. Но длина этих векторов не постоянна и отличается даже для двух повторений одного и того же наблюдения. Может ли кто-нибудь предложить способ сопоставить его с вектором постоянной длины.
я, возможно, ошибаюсь, но я думаю, что FFT используется для периодических данных. –
Хорошо использовать БПФ на непериодических данных.ДПФ (дискретное преобразование Фурье) отлично работает на непериодических данных. Однако в DFT подразумевается, что сигнал периодически расширяется. Посмотрите на уравнение для обратного ДПФ, сигнал является N-периодическим, так как ДПФ является N-периодическим. – fferri
О да, я попробую использовать ДПФ. Спасибо –