• Есть ли более 1 кластера?

    @dmshar
    1. Если вы уже использовали k-means, то очевидно хорошо понимаете, что в этом алгоритме "пустоты" не оцениваются никак, ибо он относится к алгоритмам на основе анализа метрик, а не на основе анализа плотностей.
    К алгоритмам на основе анализа плотностей относится, например, алгоритм DBSCAN.
    2. Если вы человек с опытом в анализе данных, то очевидно понимаете, что практически все алгоритмы не оценивают что-то после своей работы, а наоборот, они строят кластеры так, чтобы удовлетворить каким-то наперед заданным критериям. Другими словами, если вы применяете алгоритм, вы не должны проверять "а есть-ли пустота между кластерами", вы должны понимать, что алгоритм именно так и построен, что результатом его работы будет набор максимально возможных "плотных" на заданном наборе данных скоплений точек.
    3. Но если вам все таки вдруг очень захотелось определить где именно на вашей оси есть пустота, а где нет, и нет желания применять алгоритм кластеризации - то в вашем конкретном (одномерном) случае я бы посоветовал просто оценить плотность точек на всем интервале возможных значений. (Впрочем, DBSCAN в одномерном случае именно это и делает). Обратите внимание, что к поиску "порога" это опять не имеет никакого отношения.
  • Есть ли более 1 кластера?

    @dmshar
    Ну, если вы человек с опытом, то непонятно, чем конкретно вам не угодил, например scipy.cluster.vq.kmeans или sklearn.cluster.KMeans ?
    И если вы применяете k-means то почему спрашиваете о пороге?
    А если спрашиваете о пороге, то не путате-ли вы задачи кластеризации с задачей классификации?
  • Есть ли более 1 кластера?

    @dmshar
    На глаз :-)
    Серьезно, именно в приведенном выше случае, если надо просто разделить указанную выборку на две части,если потом вы не собираетесь использовать ее в качестве классификатора и еще при множестве всяких "не", вы сами дали ответ -(21,22) и все остальное. И самое интересное, даже самый умный алгоритм кластеризации в данном случае просто обязан дать тот-же ответ :-).
    А вот если вам надо и далее делить ВНОВЬ поступающие точки например, то тогда без метода кластеризации, хотя-бы простейшего не обойтись.
    Ну например, метод k-means - элементарно объясняется, миллион статей в интернете, самому запрограммировать - двадцать минут работы, есть стандартные реализации на Python и R, есть реализация даже в EXCEL.
    И кстати, в нем - никакой точки отсечения (порога) нет и работает он даже в случае если кластеров больше двух (даже на прямой).
  • Какую литературу выбрать для изучения WINAPI?

    @dmshar
    Вообще-то говоря, HANDLE - это указатель, а не "просто целое".
    Если таких подробностей не знать, то зачем тогда (и как) разбираться в WinAPI?
  • Что происходит в момент объявления функции?

    @dmshar
    LaRN, На самом деле, все намного сложнее. Попробуйте вообще убрать строчку "a = 2" (которая стоит в вышеприведенном фрагменте ПОСЛЕ print) и запустить. Все сработает! Потому что интерпретатор будет думать, что a - глобальная переменная!
    Более того. Попробуйте запустить
    a = 1
    def test():
        z=a
        return z
    test()

    и

    a = 1
    def test():
        z=a
        a=6
        return z
    test()


    Обратите внимание, ошибка возникает ДО вновь введенной строчки "a=6".
    При этом код
    a = 1
    def test():
        a=6
        return a
    test()

    будет вполне рабочим.

    Другими словами, интерпретатор сначала просматривает весь код функции до ее конца, определяется с пространством имен, по одному ему понятному алгоритму решает где глобальная переменная, а где локальная (причем - не всегда как мы видим корректно решает) и только потом начинает построчно выполнять функцию.
    Вот как-то так.
  • Код или математика?

    @dmshar
    А если "мат.модели(формулы)" корректны, а ошибки в коде или логике программы?
    Так что не всегда "всегда там, что первично".
  • Что не так с моим кодом python?

    @dmshar
    sanya84, Логично. Ну, или формировать сразу как список.
  • Алгоритм обучения?

    @dmshar
    Может, стоило бы начать с того, что бы рассказать что есть в бэкграунде?
    Набор чтива для MSc в области Computer Science, phD в области Organic Chemistry, B.A. в области Culturology и десятикласника-отличника специализированной мат.школы - даже если они все захотят заниматься ИИ - будут мягко говоря несколько отличными.
  • Где можно почитать про методы сравнения алгоритмов анализа данных?

    @dmshar
    Ну, если "информационно-аналитические....", тогда брите, например, что-то из области сентиментного анализа и/или семантической классификации текста. И интересно, и вполне реально и весьма перспективно.
  • Где можно почитать про методы сравнения алгоритмов анализа данных?

    @dmshar
    Могу и посоветовать. Да вот только неплохо бы вашу специальность знать. Потому как тема для прикладной математики и тема для медстатистика несколько разными должны быть :-)
  • Где можно почитать про методы сравнения алгоритмов анализа данных?

    @dmshar
    Дело в том, что Data Science, в которой и изучаются алгоритмы, которыми вы интересуются, это не предмет для "быстрого" изучения. Это отдельная наука, достаточно развитая, с не простым аппаратом. За неделю-месяц- ее не осилишь, разве что какие-то какие-то формальные приемы или форматы вызовов соответствующих функций, без понимания почему и как оно на самом деле все устроено и уж тем более - без возможности глубокого сравнительного анализа (для НИР - как вы пишете).
    Но чисто формально могу привести вот такую ссылку
    https://ru.stackoverflow.com/questions/678970/
    На любой вкус, начальную подготовку и ресурс времени на изучение. Посмотрите.
  • Где можно почитать про методы сравнения алгоритмов анализа данных?

    @dmshar
    За что мне нравиться работать с врачами - ну умеют-же они "однозначно" высказать свою мысль :-(
    1. Если на дополнительное обследование вы посылаете пациента, тогда, когда уже поставили ему какой-то диагноз и надо что-то там уточнить, а не направляете, когда он по вашему мнению здоров - то это задача классификации (диагностики) в чистом виде. Решается любым из известных алгоритмов. От наивного Байеса до нейронных сетей. Самый громкий пример последнего времени - система диагностики онкозаболеваний на основе IBM Watson. Кстати, внутри там используется не один алгоритм, а много разных и в сложной комбинации.
    2. Если на дополнительное обследование вы его направляете потому, что каких-то данных не хватает для именно для постановки диагноза - то эта задача тяготеет к алгоритмам классификации на основе деревьев решений.

    Но и тут в каждом из случаев может быть куча подвариантов и, соответственно, алгоритмов. И что вы для этих алгоритмов собираетесь сравнивать - так и не стало понятно.
  • Что выбрать в качестве темы дипломной работы?

    @dmshar
    Ну, нате вам тему по анализу данных:
    "Использования стримминг (потоковых) методов при классификации и кластеризации данных". Очень актуально и вообще при диагностике чего-нибудь, и при анализе бизнес-процессов методами Machine Learning. Основной посыл - "полностью стационарных" данных не бывает. Соответственно - кластер - это не застывшая структура, он постоянно "живет". То, что было "аномалией" вчера - сегодня может стать "нормой". Или наоборот. "Классические" методы кластеризации и классификации в таких случаях или вообще не работают или работают плохо. Обозначенная тема как раз и развивает методы классификации, кластеризации (и связанные с ними прикладные задачи) для использования в описанных условиях.
    Очень актуально и действительно, "на острие".
    Удачи.
  • Могли бы объяснить что такое квартиль и медианна?

    @dmshar
    "не очень нормальные" - это означает, что их распределение отличается от нормального (распределения Гаусса). Добавив 1000 и 2000 вы немного улучшили выборку в указанном смысле.
    Не важно куда "ползет" распределение. Важно - совпадает или нет медиана со средним.
    Второй вопрос. О чем они говорят. Да в примере медиан будет 160, что говорит, что половина из сотрудников получает меньше этой цифры. А о чем говорит среднее? Как раз семантика у среднего появляется тогда, когда оно совпадает с медианой. Т.е. когда распределение данных становиться близким к нормальному.
  • Какой тип нейронных сетей использовать для предсказания данных?

    @dmshar
    nirvimel: Если Вы имеете ввиду, что регрессионный метод (а точнее - метод на основе МНК) является одним из возможных методов предсказания значений временного ряда - полностью с Вами согласен. Но именно - одним из. Существует большое количество других подходов к задаче прогнозирования временного ряда.
    Про то, что для данной задаче нет смысла городить огород с нейронной сетью - тоже согласен. Не нужно усложнять решение там, где это усложнение не даст ощутимого выигрыша в точности модели.