From 85a0544b03f44dccd92ff6ca5deaaf74a918dd8e Mon Sep 17 00:00:00 2001 From: altteam Date: Thu, 23 Nov 2023 02:33:04 +0400 Subject: [PATCH] laba 4 ready --- verina_daria_lab_5/README.md | 38 +++++++++++ verina_daria_lab_5/img.png | Bin 0 -> 40382 bytes verina_daria_lab_5/main.py | 58 ++++++++++++++++ verina_daria_lab_5/person_types.csv | 98 ++++++++++++++++++++++++++++ 4 files changed, 194 insertions(+) create mode 100644 verina_daria_lab_5/README.md create mode 100644 verina_daria_lab_5/img.png create mode 100644 verina_daria_lab_5/main.py create mode 100644 verina_daria_lab_5/person_types.csv diff --git a/verina_daria_lab_5/README.md b/verina_daria_lab_5/README.md new file mode 100644 index 0000000..41722b5 --- /dev/null +++ b/verina_daria_lab_5/README.md @@ -0,0 +1,38 @@ +## Лабораторная работа №5 +### Регрессия +### Задание +Использовать регрессию по варианту для данных из таблицы 1 по варианту(таблица 10),самостоятельно сформулировав задачу. Оценить, насколько хорошо онаподходит для решения сформулированной вами задачи. + +### Как запустить лабораторную работу: + +* установить python, numpy, matplotlib, sklearn +* запустить проект при помощи IDE pyCharm + +### Какие технологии использовались: + +* Язык программирования `Python`, библиотеки matplotlib, sklearn, pandas +* Среда разработки `PyCharm` + +### Что делает лабораторная работа: + +Программа реализует модель логистической регрессии для предсказания пола (мужской/женский) на основе уровня активности, веса и роста. Она обучается на тренировочных данных, затем делает предсказания на тестовом наборе, вычисляет метрики оценки модели (точность, матрицу ошибок, отчет о классификации) и визуализирует результаты на диаграмме рассеяния. + + +### Результаты: +![img.png](img.png) +Accuracy (Точность): 80% - доля правильных предсказаний; + +Confusion Matrix (Матрица ошибок): +True Positive (TP): 10 - правильно предсказанные Female; +True Negative (TN): 6 - правильно предсказанные Male; +False Positive (FP): 3 - ошибочно предсказанные Female (вместо Male); +False Negative (FN): 1 - ошибочно предсказанные Male (вместо Female); +Classification Report (Отчет о классификации): +* Precision (Точность) для Female: 91% - доля правильно предсказанных Female относительно всех предсказанных Female; +* Recall (Полнота) для Female: 77% - доля правильно предсказанных Female относительно всех реальных Female; +* F1-score для Female: 83% - среднее гармоническое между точностью и полнотой для Female; +* Поддержка (support) для Female: 13 - количество образцов Female в тестовом наборе; +* Аналогичные метрики для Male также представлены. + +### Вывод: +Модель логистической регрессии, обученная на данных об уровне активности, весе и росте, достигла точности 80%. Она успешно предсказывает пол (Female/Male) с высокой точностью и полнотой, как указано в матрице ошибок и отчете о классификации. diff --git a/verina_daria_lab_5/img.png b/verina_daria_lab_5/img.png new file mode 100644 index 0000000000000000000000000000000000000000..1d21b41ecf8cadfa39c18dc3d22815ef122f6a7f GIT binary patch literal 40382 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

&ggc6?H|^9hK+V(pd(Bl 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 b`1$z%NgBwK-b~{J00000NkvXXu0mjf1^00l literal 0 HcmV?d00001 diff --git a/verina_daria_lab_5/main.py b/verina_daria_lab_5/main.py new file mode 100644 index 0000000..fe45f43 --- /dev/null +++ b/verina_daria_lab_5/main.py @@ -0,0 +1,58 @@ +import pandas as pd +import matplotlib.pyplot as plt +from sklearn.model_selection import train_test_split +from sklearn.linear_model import LogisticRegression +from sklearn.preprocessing import StandardScaler, LabelEncoder +from sklearn.metrics import accuracy_score, classification_report, confusion_matrix + +# Загрузка данных +data = pd.read_csv('person_types.csv') + +# Выбор переменных для модели +features = ['ACTIVITY_LEVEL', 'WEIGHT', 'HEIGHT'] + +# Отбор нужных столбцов +df = data[features + ['SEX']] + +# Удаление строк с пропущенными значениями +df = df.dropna() + +# Преобразование строковых значений в числа +le = LabelEncoder() +df['ACTIVITY_LEVEL'] = le.fit_transform(df['ACTIVITY_LEVEL']) + +# Разделение на признаки и целевую переменную +X = df.drop('SEX', axis=1) +y = df['SEX'] + +# Разделение на тренировочный и тестовый наборы +X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) + +# Стандартизация признаков +scaler = StandardScaler() +X_train_scaled = scaler.fit_transform(X_train) +X_test_scaled = scaler.transform(X_test) + +# Создание и обучение логистической регрессии +model = LogisticRegression() +model.fit(X_train_scaled, y_train) + +# Предсказание на тестовом наборе +y_pred = model.predict(X_test_scaled) + +# Оценка качества модели +accuracy = accuracy_score(y_test, y_pred) +conf_matrix = confusion_matrix(y_test, y_pred) +class_report = classification_report(y_test, y_pred) + +print(f'Accuracy: {accuracy}') +print(f'Confusion Matrix:\n{conf_matrix}') +print(f'Classification Report:\n{class_report}') + +# Визуализация результатов +plt.scatter(X_test['WEIGHT'], y_test, color='black', label='Actual') +plt.scatter(X_test['WEIGHT'], y_pred, color='blue', label='Predicted', marker='x') +plt.xlabel('Weight') +plt.ylabel('Sex') +plt.legend() +plt.show() diff --git a/verina_daria_lab_5/person_types.csv b/verina_daria_lab_5/person_types.csv new file mode 100644 index 0000000..633e77f --- /dev/null +++ b/verina_daria_lab_5/person_types.csv @@ -0,0 +1,98 @@ +S_No,AGE,HEIGHT,WEIGHT,SEX,ACTIVITY_LEVEL,PAIN_1,PAIN_2,PAIN_3,PAIN_4,MBTI,E,I,S,N,T,F,J,P,POSTURE +1,53,62,125,Female,Low,0,0,0,0,ESFJ,18,3,17,9,9,13,18,4,A +2,52,69,157,Male,High,7,8,5,3,ISTJ,6,15,14,12,21,3,13,9,B +3,30,69,200,Male,High,0,0,0,0,ESTJ,15,6,16,10,15,9,12,10,A +4,51,66,175,Male,Moderate,9.5,9.5,9.5,1.5,ISTJ,6,15,21,5,13,11,19,3,D +5,45,63,199,Female,Moderate,4,5,2,2,ENFJ,14,7,20,6,9,15,16,6,A +6,68,74,182,Male,Low,0,2.5,1.5,0,ISFP,4,17,17,9,11,13,4,18,D +7,62,68,263,Male,Low,7,10,10,10,ISTP,7,14,20,6,14,10,9,13,B +8,65,61,143,Female,Low,0,9,5,10,ESTJ,17,4,17,9,19,5,17,5,D +9,66,67,180,Male,Low,0.5,3.5,0.5,9.5,ESFJ,19,2,18,8,11,13,13,9,C +10,58,69,165,Male,Low,0,7.5,7,3,INFJ,5,16,13,13,11,13,17,5,D +11,61,67,210,Male,Low,5,0,0,9,ENTP,11,10,6,20,16,8,10,12,B +12,33,62,120,Female,Low,0,3,0,0,ISFJ,2,19,22,4,9,15,12,10,B +13,48,64,127,Female,Low,5,7,8,7,ESFJ,13,8,14,12,9,15,14,8,D +14,57,68,185,Male,Low,2.5,7.5,1.5,5.5,ENTJ,16,5,12,14,15,9,17,5,B +15,30,69,190,Male,Moderate,0,0,4,7,ESTP,20,1,22,4,13,11,7,15,A +16,62,71,165,Male,Low,0,1,0,0,ISTJ,2,19,14,12,22,2,19,3,D +17,59,66,138,Female,Low,6,3,6,6,ESTJ,12,9,18,8,14,10,20,2,A +18,33,72,171,Male,Moderate,4,9,8,0,ENFP,17,4,10,16,11,13,4,18,B +19,23,65,110,Female,Low,4.5,8.5,0,0,ESFP,13,8,15,11,12,12,9,13,B +20,48,63,154,Female,Low,8,8,6,9,ISFP,9,13,16,10,11,13,9,13,C +21,63,66,185,Female,Low,8,0,3,7,INFP,2,19,10,16,10,14,11,11,D +22,64,69,176,Male,Low,0.5,0.5,0.5,0.5,ESTP,13,8,25,1,18,6,8,14,B +23,71,68,156,Female,Low,2,8,0,6,ESTP,13,8,15,11,16,8,7,15,B +24,71,61,140,Female,Low,8,3,3,8,ESFJ,12,9,23,3,5,19,16,6,D +25,50,60,118,Female,Moderate,7,5,2,0,INFJ,2,19,11,15,1,23,12,10,C +26,41,65,133,Female,Low,7,4,0,0,ISFJ,3,18,20,6,5,19,14,9,C +27,36,68,165,Male,High,0,2,0,0,ESTP,16,5,20,6,15,9,7,15,A +28,40,62,113,Female,Low,2,3,0,0,ISTP,7,14,15,11,14,10,6,16,D +29,26,65,150,Male,Low,1,0,1,2,ENTJ,15,6,12,14,13,11,19,3,D +30,43,63,175,Male,Moderate,0,0,0,5,ENFP,21,0,5,21,1,23,0,22,A +31,46,66,222,Male,Low,0,0,0,8,ESFP,18,3,14,12,12,12,2,20,A +32,47,69,152,Male,Low,0,0,3.5,5.5,ESTJ,12,9,19,7,14,10,17,5,D +33,20,67,135,Male,Low,0,7,0,0,ESTP,15,6,14,12,14,10,3,19,B +34,34,73,200,Male,Low,0,8,6,0,ENTJ,21,0,6,20,15,9,16,6,C +35,54,62,190,Female,Low,0,5,4,0,ISFP,4,17,21,5,9,15,4,18,D +36,66,63,142,Female,Low,2,0,0,0,ISTJ,4,17,16,10,17,7,18,4,C +37,42,68,170,Male,High,0,10,0,0,ENFJ,17,4,10,16,8,16,15,7,C +38,52,66,222,Male,Low,3,5,4,3,ENFP,17,4,5,21,1,23,2,20,A +39,61,63,155,Male,Low,3.5,3.5,3.5,6,ESTP,18,3,23,3,15,9,6,16,B +40,49,69,190,Male,Low,2,9,5,3,ENFJ,13,8,10,16,8,16,20,2,B +41,17,69,145,Male,Moderate,0,7,2,0,INFP,9,12,8,18,6,18,11,11,C +42,57,70,160,Male,Low,0,7,0,0,ISFP,6,14,17,9,12,12,11,11,D +43,82,60,159,Male,Low,0,0,0,0,ESFP,21,0,20,6,6,18,2,20,A +44,48,61,138,Female,Low,0,0,0,0,ENFP,21,0,10,16,4,20,1,21,A +45,80,59,115,Female,Low,0,0,0,0,ENFP,19,2,11,15,6,18,3,19,A +46,66,66,184,Male,Low,4,3,0,0,ISTJ,10,11,18,8,21,3,14,8,D +47,63,62,150,Female,Low,2,10,0,4,ISFP,9,12,20,6,0,24,4,18,D +48,13,62,127,Female,Low,3,2,2,5,ENFJ,21,0,7,17,2,21,13,9,B +49,20,68,155,Male,Low,1,4,1,2,ESTP,16,5,17,9,15,9,10,12,B +50,18,66,150,Female,Low,3,3,5,6,INFJ,7,12,13,13,8,16,18,4,B +51,56,62,130,Female,Low,0,2,0,0,ESFP,18,3,21,4,5,19,10,12,C +52,56,64,165,Male,Low,0,5,0,0,ENTP,16,5,12,14,16,8,4,17,B +53,50,65,172,Female,Low,0,0,0,3,ESFP,14,7,19,7,1,23,5,17,A +54,19,68,113,Female,Low,0,4,6,2,INFJ,7,14,18,8,12,12,14,8,D +55,47,63,128,Female,Low,7.5,4,3,7.5,ESFJ,16,5,16,10,10,14,14,8,B +56,62,61,150,Female,Low,2,2,2,2,ESTJ,17,4,20,6,8,16,16,6,B +57,29,68,145,Female,Moderate,0,9,2,0,ESFP,19,2,16,10,4,20,6,16,B +58,20,70,250,Male,Low,4,8,2,5,ESFP,17,4,14,12,7,17,4,18,B +59,43,62,160,Female,Low,0,5,0,0,ISFJ,9,12,22,4,5,19,18,4,C +60,43,64,183,Male,Low,0,3,4,0,ISTP,4,17,15,11,15,9,9,13,B +61,42,63,166,Female,Low,0,0,0,8,ESFJ,21,0,20,6,3,21,16,6,B +62,25,67,160,Male,Low,5,0,8,0,ESTP,16,5,19,7,19,5,7,15,A +63,21,62,118,Female,Low,7.5,2.5,6.5,0,ESFP,11,10,19,7,10,14,5,17,B +64,28,62,200,Male,Low,0,8,0,5,ENTP,18,3,11,15,20,4,9,13,C +65,42,70,170,Male,Low,0,4,0,0,ESFP,18,3,17,9,5,19,6,16,A +66,18,62,110,Female,Low,4,5,0,0,ISTJ,4,17,22,4,13,11,20,2,B +67,24,73,155,Male,High,2,3,0,0,INTJ,5,16,9,17,14,10,17,5,C +68,39,70,200,Male,Moderate,0,3,0,0,ENTP,18,3,5,21,18,6,7,15,B +69,60,68,222,Male,Low,0.5,0.5,0.5,2.5,ISTP,7,14,19,7,15,9,3,19,C +70,37,60,105,Female,Low,2,8,2,6,INFP,9,12,9,17,4,20,2,20,D +71,30,67,135,Female,Low,5,5,0,1,ESFP,19,2,21,5,12,12,8,14,A +72,45,67,148,Male,Low,2,3,0,5,ISFJ,5,16,18,8,12,12,17,5,C +73,45,65,160,Female,Low,2,3,0,0,ENTJ,16,5,13,13,14,10,13,9,B +74,53,73,170,Male,Low,0,0,0,0,ESFJ,16,5,14,12,12,12,17,5,C +75,49,71,230,Male,Moderate,0,4,0,4,ESTJ,15,6,15,11,18,6,17,5,B +76,45,67,160,Female,Low,2,0,2,0,ISFJ,3,18,17,9,12,12,18,4,A +77,55,74,240,Male,Low,0,7,0,4,ESTP,16,5,14,12,17,7,11,11,C +78,45,64,118,Female,Moderate,0,4,0,4,ISFP,5,16,18,8,11,13,6,16,D +79,75,63,143,Female,Low,4,6,4,6,ESTJ,12,9,17,9,13,11,16,6,B +80,44,66,200,Female,Low,2,3,2,0,ENFP,18,3,9,17,5,19,11,11,B +81,48,71,145,Male,Low,0,7,4,0,INFP,3,18,11,15,6,18,4,18,C +82,49,64,155,Female,Low,4,7,3,5,ESFP,12,9,16,10,4,19,9,13,C +83,16,58,81,Female,Low,0,0,2,0,INFP,8,13,13,13,11,13,5,17,D +84,39,60,88,Female,Low,3,1,0,0,ESFP,13,8,12,14,7,16,5,17,B +85,19,68,125,Female,Low,0,3,0,0,ENTJ,18,3,9,17,6,18,12,10,D +86,11,60,68,Male,High,5,3,1,0,ENFP,20,1,7,19,3,21,0,22,A +87,55,65,198,Male,Low,4,2.5,3,8,ENTP,20,1,12,14,18,6,2,20,A +88,28,67,180,Female,Low,0,0,0,0,ESFJ,11,10,22,14,8,16,14,8,B +89,22,65,193,Female,Low,5,7,7,0,ESFJ,17,4,14,12,7,17,15,7,B +90,56,67,150,Female,Low,0,7,0,0,ISFP,9,12,15,11,4,20,5,17,C +91,29,65,125,Female,Moderate,2,0,0,4,ENFP,19,2,13,13,12,12,10,12,A +92,16,69,130,Female,Moderate,5,0,5,7,ENFJ,19,2,9,17,2,22,12,10,B +93,16,58,100,Male,Moderate,0,0,0,3,ESTP,19,2,22,4,19,5,2,20,B +94,45,62,134,Female,Moderate,0,4,0,0,ESFJ,11,10,17,9,6,18,13,9,B +95,43,69,188,Male,Moderate,2,0,0,0,ENFP,12,9,9,17,6,18,2,20,A +96,28,67,180,Female,Low,0,0,0,0,ESFJ,11,10,22,14,8,16,14,8,B +97,43,69,188,Male,Moderate,4,0,0,0,ENFP,12,9,9,17,6,18,2,20,A