Обеспечение чистой водой играет решающую роль для здоровья населения. Загрязненная вода и плохие санитарные условия связаны с передачей таких заболеваний, как холера, диарея, дизентерия, гепатит А, брюшной тиф и полиомиелит. Выяснив, пригодна ли вода для питья, можно решить множество проблем. Поэтому я хотел выяснить, можем ли мы построить модель для классификации того, является ли вода пригодной для питья или нет с учетом конкретных свойств. Я использовал набор данных Качество воды от Kaggle.
Набор данных
Набор данных состоит из 9 столбцов в качестве объектов и 1 столбец обозначен как метка.
- ph: pH 1. воды (от 0 до 14).
- Жесткость: способность воды осаждать мыло в мг/л.
- Твердые вещества: общее количество растворенных твердых веществ в частях на миллион.
- Хлорамины: количество хлораминов в частях на миллион.
- Сульфат: количество растворенных сульфатов в мг/л.
- Электропроводность: электропроводность воды в мкСм/см.
- Органический_углерод: количество органического углерода в частях на миллион.
- Тригалометаны: количество тригалометанов в мкг/л.
- Мутность: мера светоизлучающей способности воды в NTU.
- Питьевая пригодность: указывает, безопасна ли вода для употребления человеком. Питьевой — 1 и Непитьевой — 0
Библиотеки
import pandas as pd import matplotlib.pyplot as plt import seaborn as sns from matplotlib import style # Preprocessing #import missingno as msno from sklearn.preprocessing import StandardScaler, binarize # Model Selection from sklearn.model_selection import train_test_split, cross_val_score, KFold # Models from sklearn.tree import DecisionTreeClassifier from sklearn.linear_model import LogisticRegression from sklearn.model_selection import GridSearchCV from sklearn.ensemble import RandomForestClassifier from sklearn.svm import SVC # Metrics from sklearn.metrics import confusion_matrix, classification_report, roc_auc_score, roc_curve, accuracy_score import warnings warnings.filterwarnings('ignore') # supress warnings %matplotlib inline
Исследование данных
Набор данных содержит показатели качества воды для 3276 различных водоемов.
61% проб воды помечены как питьевые, тогда как 39% из них пригодны для питья.
Глядя на матрицу диаграммы рассеяния, мы можем сказать, что корреляция между функциями очень мала.
Вменение
Изучив набор данных, я хотел найти и заполнить пустые ячейки, используя правильные методы.
Я обнаружил, что столбцы ph, сульфат и тригалометаны содержат пустые значения.
После анализа их графиков распределения я решил использовать средние значения, потому что все три столбца имели нормальное распределение.
Классификатор дерева решений
Классификатор дерева решений дал точность 0,59 и точность 0,59.
Случайный лесной классификатор
Классификатор случайного леса дал точность 0,67 и точность 0,68.
Машина опорных векторов
Метод опорных векторов дал точность 0,68 и точность 0,68, что является самым высоким результатом среди методов, которые я использовал в этом исследовании.
K-ближайшие соседи
Классификатор дерева решений дал точность 0,60 и точность 0,58.