Ну, если вы человек с опытом, то непонятно, чем конкретно вам не угодил, например scipy.cluster.vq.kmeans или sklearn.cluster.KMeans ?
И если вы применяете k-means то почему спрашиваете о пороге?
А если спрашиваете о пороге, то не путате-ли вы задачи кластеризации с задачей классификации?
На глаз :-)
Серьезно, именно в приведенном выше случае, если надо просто разделить указанную выборку на две части,если потом вы не собираетесь использовать ее в качестве классификатора и еще при множестве всяких "не", вы сами дали ответ -(21,22) и все остальное. И самое интересное, даже самый умный алгоритм кластеризации в данном случае просто обязан дать тот-же ответ :-).
А вот если вам надо и далее делить ВНОВЬ поступающие точки например, то тогда без метода кластеризации, хотя-бы простейшего не обойтись.
Ну например, метод k-means - элементарно объясняется, миллион статей в интернете, самому запрограммировать - двадцать минут работы, есть стандартные реализации на Python и R, есть реализация даже в EXCEL.
И кстати, в нем - никакой точки отсечения (порога) нет и работает он даже в случае если кластеров больше двух (даже на прямой).
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()
будет вполне рабочим.
Другими словами, интерпретатор сначала просматривает весь код функции до ее конца, определяется с пространством имен, по одному ему понятному алгоритму решает где глобальная переменная, а где локальная (причем - не всегда как мы видим корректно решает) и только потом начинает построчно выполнять функцию.
Вот как-то так.
Может, стоило бы начать с того, что бы рассказать что есть в бэкграунде?
Набор чтива для MSc в области Computer Science, phD в области Organic Chemistry, B.A. в области Culturology и десятикласника-отличника специализированной мат.школы - даже если они все захотят заниматься ИИ - будут мягко говоря несколько отличными.
Ну, если "информационно-аналитические....", тогда брите, например, что-то из области сентиментного анализа и/или семантической классификации текста. И интересно, и вполне реально и весьма перспективно.
Могу и посоветовать. Да вот только неплохо бы вашу специальность знать. Потому как тема для прикладной математики и тема для медстатистика несколько разными должны быть :-)
Дело в том, что Data Science, в которой и изучаются алгоритмы, которыми вы интересуются, это не предмет для "быстрого" изучения. Это отдельная наука, достаточно развитая, с не простым аппаратом. За неделю-месяц- ее не осилишь, разве что какие-то какие-то формальные приемы или форматы вызовов соответствующих функций, без понимания почему и как оно на самом деле все устроено и уж тем более - без возможности глубокого сравнительного анализа (для НИР - как вы пишете).
Но чисто формально могу привести вот такую ссылку https://ru.stackoverflow.com/questions/678970/
На любой вкус, начальную подготовку и ресурс времени на изучение. Посмотрите.
За что мне нравиться работать с врачами - ну умеют-же они "однозначно" высказать свою мысль :-(
1. Если на дополнительное обследование вы посылаете пациента, тогда, когда уже поставили ему какой-то диагноз и надо что-то там уточнить, а не направляете, когда он по вашему мнению здоров - то это задача классификации (диагностики) в чистом виде. Решается любым из известных алгоритмов. От наивного Байеса до нейронных сетей. Самый громкий пример последнего времени - система диагностики онкозаболеваний на основе IBM Watson. Кстати, внутри там используется не один алгоритм, а много разных и в сложной комбинации.
2. Если на дополнительное обследование вы его направляете потому, что каких-то данных не хватает для именно для постановки диагноза - то эта задача тяготеет к алгоритмам классификации на основе деревьев решений.
Но и тут в каждом из случаев может быть куча подвариантов и, соответственно, алгоритмов. И что вы для этих алгоритмов собираетесь сравнивать - так и не стало понятно.
Ну, нате вам тему по анализу данных:
"Использования стримминг (потоковых) методов при классификации и кластеризации данных". Очень актуально и вообще при диагностике чего-нибудь, и при анализе бизнес-процессов методами Machine Learning. Основной посыл - "полностью стационарных" данных не бывает. Соответственно - кластер - это не застывшая структура, он постоянно "живет". То, что было "аномалией" вчера - сегодня может стать "нормой". Или наоборот. "Классические" методы кластеризации и классификации в таких случаях или вообще не работают или работают плохо. Обозначенная тема как раз и развивает методы классификации, кластеризации (и связанные с ними прикладные задачи) для использования в описанных условиях.
Очень актуально и действительно, "на острие".
Удачи.
"не очень нормальные" - это означает, что их распределение отличается от нормального (распределения Гаусса). Добавив 1000 и 2000 вы немного улучшили выборку в указанном смысле.
Не важно куда "ползет" распределение. Важно - совпадает или нет медиана со средним.
Второй вопрос. О чем они говорят. Да в примере медиан будет 160, что говорит, что половина из сотрудников получает меньше этой цифры. А о чем говорит среднее? Как раз семантика у среднего появляется тогда, когда оно совпадает с медианой. Т.е. когда распределение данных становиться близким к нормальному.
nirvimel: Если Вы имеете ввиду, что регрессионный метод (а точнее - метод на основе МНК) является одним из возможных методов предсказания значений временного ряда - полностью с Вами согласен. Но именно - одним из. Существует большое количество других подходов к задаче прогнозирования временного ряда.
Про то, что для данной задаче нет смысла городить огород с нейронной сетью - тоже согласен. Не нужно усложнять решение там, где это усложнение не даст ощутимого выигрыша в точности модели.
И если вы применяете k-means то почему спрашиваете о пороге?
А если спрашиваете о пороге, то не путате-ли вы задачи кластеризации с задачей классификации?