Недавно нашел много полезного в публикации Medium Построение логистической регрессии в Python, шаг за шагом Сьюзан Ли. https://towardsdatascience.com/building-a-logistic-regression-in-python-step-by-step-becd4d56c9c8

Предварительный анализ обучающего набора данных должен включать

1) Анализ исследования данных с помощью графиков кросс-таблиц

2) SMOTE (Synthetic Minority Oversampling Technique) передискретизация

3) Алгоритм преобразования нечисловых данных в числовые с рекурсивным устранением признаков (RFE)

Решил воспроизвести расчёты на Python и обнаружил 2 ошибки — 1) в этом фрагменте кода нужна функция fit_resample() вместо fit_sample.

y = data_final.loc[:, data_final.columns == 'y']from imblearn.over_sampling import SMOTEos = SMOTE(random_state=0)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=0)
columns = X_train.columnsos_data_X,os_data_y=os.fit_resample(X_train, y_train)
os_data_X = pd.DataFrame(data=os_data_X,columns=columns )
os_data_y= pd.DataFrame(data=os_data_y,columns=['y'])
# we can Check the numbers of our data
print("length of oversampled data is ",len(os_data_X))
print("Number of no subscription in oversampled data",len(os_data_y[os_data_y['y']==0]))
print("Number of subscription",len(os_data_y[os_data_y['y']==1]))
print("Proportion of no subscription data in oversampled data is ",len(os_data_y[os_data_y['y']==0])/len(os_data_X))
print("Proportion of subscription data in oversampled data is ",len(os_data_y[os_
data_y['y']==1])/len(os_data_X))

Вторая ошибка была действительно незначительной, весь исправленный код .ipynb с дополнениями можно найти по ссылке на gitlab.

https://gitlab.com/vlad.agapov/logistic-regression-and-ml-classifiers/-/blob/main/article_medium.ipynb

Удивительно, но точность логистической регрессии выросла с 74% до 84% для того же набора данных.

Затем решил проверить, какие методы Scikit-learn ML могут еще больше повысить точность. Со следующими результатами для точности

Случайный Форрест 91,15%

Дерево решений 91,26%

КНН 90,76%

82,86% сингапурских долларов

Гауссовский наивный байесовский метод 81,39%

Такой предварительный анализ сам по себе может быть компьютеризирован и чрезвычайно важен, поскольку он дает ключ к пониманию лежащей в основе физики проблемы реального мира, к наиболее важным моделям процессов и может привести к новым показателям. Во многих случаях задачи распознавания могут быть решены с достаточно высокой точностью еще до МО.