{"id":29652513,"url":"https://github.com/aidana13/credit-score-analysis","last_synced_at":"2026-05-08T14:35:13.066Z","repository":{"id":303849898,"uuid":"1016771098","full_name":"aidana13/credit-score-analysis","owner":"aidana13","description":"Классификация кредитного скоринга: предобработка, обучение моделей, визуализация и предсказания","archived":false,"fork":false,"pushed_at":"2025-07-09T18:07:25.000Z","size":12708,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-07-10T03:31:01.809Z","etag":null,"topics":["credit-scoring","data-science","machine-learning","postgresql","python"],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aidana13.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-07-09T13:53:53.000Z","updated_at":"2025-07-09T18:07:28.000Z","dependencies_parsed_at":"2025-07-10T03:50:59.790Z","dependency_job_id":null,"html_url":"https://github.com/aidana13/credit-score-analysis","commit_stats":null,"previous_names":["aidana13/credit-score-analysis"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/aidana13/credit-score-analysis","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aidana13%2Fcredit-score-analysis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aidana13%2Fcredit-score-analysis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aidana13%2Fcredit-score-analysis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aidana13%2Fcredit-score-analysis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aidana13","download_url":"https://codeload.github.com/aidana13/credit-score-analysis/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aidana13%2Fcredit-score-analysis/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266437307,"owners_count":23928223,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-22T02:00:09.085Z","response_time":66,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["credit-scoring","data-science","machine-learning","postgresql","python"],"created_at":"2025-07-22T06:01:41.291Z","updated_at":"2026-05-08T14:35:08.040Z","avatar_url":"https://github.com/aidana13.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Credit Score Classification Project\n\n## 🎯 Цель проекта\n\nРазработка и обучение моделей машинного обучения для прогнозирования кредитного рейтинга клиентов на основе различных финансовых и демографических характеристик.\n\n## 📚 Источник данных\n\nДанные взяты из публичного датасета с платформы Kaggle: Credit Score Classification, который содержит информацию о клиентах — возраст, доход, историю кредитов, задержки платежей и целевой столбец credit_score, определяющий категорию кредитного рейтинга: poor, standard, good.\n🔗 Credit Score Classification — https://www.kaggle.com/datasets/parisrohan/credit-score-classification\n\n## 📂 Структура проекта\n\n- `models/` — сохранённые модели и препроцессор:\n  - `model_logistic.pkl`\n  - `model_tree.pkl`\n  - `model_random_forest.pkl`\n  - `preprocessor.pkl`\n  - `label_encoder.pkl`\n- `results/` — результаты и предсказания:\n  - `test_predictions_labeled.csv` - результаты предсказания\n- `README.md` — описание проекта;\n- `RESULTS.md` - результаты проекта;\n- `main.ipynb` — исследовательский анализ, предобработка, обучение моделей, визуализации;\n- `preprocessing_utils.py` — функция препроцессинга;\n- `test.csv` - тестовый датасет;\n- `testing.ipynb` — предсказания на тестовых данных;\n- `train.csv` - тренировочный датасет.\n\n## 🗃️ Использованные данные\n\n- **Файл**: `train.csv` (обучение), `test.csv` (предсказание)\n- **Таблицы в PostgreSQL**:\n  - `credit_data` — сырые данные\n  - `credit_data_cleaned` — после `preprocess_credit_data`\n  - `credit_features_processed` — после трансформаций и pipeline\n  - `test_data` — сырые данные из `test.csv`\n\n## 📊 Описание колонок\n\n- `age`: возраст\n- `occupation`: тип занятости\n- `num_credit_card`: количество кредитных карт\n- `annual_income`, `monthly_inhand_salary`, `outstanding_debt`: числовые финансовые признаки\n- `credit_mix`, `payment_behaviour`, `credit_score`: категориальные признаки\n- Дополнительно созданы признаки:\n  - `credit_utilization_rate`\n  - `credit_history_months`\n\n## ⚙️ Алгоритмы и модели\n\n- **Модели**:\n  - `LogisticRegression`\n  - `DecisionTreeClassifier`\n  - `RandomForestClassifier`\n- **Метрики**:\n  - Accuracy\n  - Precision (macro)\n  - Recall (macro)\n  - F1-score (macro)\n- **Pipeline**:\n  - Числовые признаки: `SimpleImputer + MinMaxScaler`\n  - Категориальные признаки: `SimpleImputer + OrdinalEncoder + MinMaxScaler`\n  - Объединение через `ColumnTransformer`\n\n## 📈 Визуализации\n\n- Доля 'poor' по:\n  - Возрастным группам\n  - Количеству кредитных карт\n  - Типу занятости\n- Тепловая карта: профессия × количество кредитных карт\n\n## 💾 Сохранение моделей и объектов\n\n```python\nwith open(\"models/preprocessor.pkl\", \"wb\") as f:\n    pickle.dump(preprocessor, f)\nwith open(\"models/model_logistic.pkl\", \"wb\") as f:\n    pickle.dump(pipe_log, f)\nwith open(\"models/model_tree.pkl\", \"wb\") as f:\n    pickle.dump(pipe_tree, f)\nwith open(\"models/model_random_forest.pkl\", \"wb\") as f:\n    pickle.dump(pipe_rf, f)\nwith open(\"models/label_encoder.pkl\", \"wb\") as f:\n    pickle.dump(label_encoder, f)\n```\n\n## Работа с базой данных PostgreSQL\n\nДля удобства хранения, обработки и анализа данных проект использует базу данных PostgreSQL. Было создано несколько таблиц:\n\n| Название таблицы          | Описание |\n|---------------------------|----------|\n| `credit_data`             | Сырые необработанные данные из `train.csv` |\n| `credit_data_cleaned`     | Данные после предварительной обработки (чистка и нормализация) |\n| `credit_features_processed` | Данные после feature engineering и масштабирования |\n| `test_data`               | Сырые данные из `test.csv` |\n\n### 🔌 Подключение к PostgreSQL\n\nДля подключения к базе использовалась библиотека:\n\n```python\nfrom sqlalchemy import create_engine\nimport psycopg2\n```\nПример подключения:\n```python\nengine = create_engine(\"postgresql+psycopg2://postgres:qwerty@localhost:5432/postgres\")\nconn = engine.connect()\n```\nПример выгрузки DataFrame в PostgreSQL:\n```python\ndf_clean.to_sql(\"credit_data_cleaned\", engine, if_exists=\"replace\", index=False)\n```\nПример загрузки данных из таблицы:\n```python\ndata = pd.read_sql(\"SELECT * FROM credit_data\", conn)\n```\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faidana13%2Fcredit-score-analysis","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faidana13%2Fcredit-score-analysis","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faidana13%2Fcredit-score-analysis/lists"}