1. Описание проблемы и обсуждение фона
Дорожные аварии представляют собой одну из ведущих причин смерти во всем мире и экономических расходов. Несмотря на многочисленные меры и кампании, которые ежегодно развернуты для повышения осведомленности о серьезности проблемы, она все еще происходит довольно часто. Влияние дорожно-транспортных происшествий на общество и экономику высоки, и у человека усугубляются большими расходами на здравоохранение, кампании по вопросам осведомленности, мобилизации специализированного персонала и т. Д. Тот, кто устанавливает экономическое влияние дорожно-транспортных происшествий в развитой стране от 2 до 3% ВВП, значительный показатель для любой страны. Сотрудничество по сокращению этих потерь стало важным вопросом общего интереса.
Определение проблемы :
Каковы факторы, которые оказывают высокое влияние на дорожные аварии?
Есть ли узел для них?
Корреляция?
Нам придется проанализировать данные, чтобы получить более четкое изображение и сделать выводы.
Вступление
Обратите внимание, что эта работа представляет собой окончательный проект курса сертификации IBM, для которого мы предоставили данные, с которыми мы разработаем проект.
Эти данные были собраны и разделяются полицейским отделением Сиэтла (записями трафика) и предоставляются Coursera для загрузки через ссылку.
Он учитывает период времени с 2004 до настоящего времени, запись информации, связанной с серьезностью дорожного происшествия, местоположение, тип столкновения, погоды и дороги, видимость, количество участвующих людей и т. Д.
Цель состоит в том, чтобы определить проблему, найти факторы, которые могут иметь соответствующий вес в количестве и серьезности аварий, так что любой организм, компания или предприятие, заинтересованное в сокращении этих цифр, могут сосредоточить ресурсы в точках, где эти условия сходятся.
Чтобы обеспечить большую ясность, я постараюсь проанализировать данные, посмотреть, есть ли отношения или шаблоны, особенно в авариях с высоким ударом, так что профилактические меры могут сосредоточиться на этих точках в качестве первой стратегии предотвращения.
Данные для использования
2. Описание данных и как он будет использоваться для решения проблемы
Для точного прогнозирования величины повреждений, вызванных несчастными случаями, они требуют большого количества отчетов о движенных авариях с точными данными для моделей прогнозирования прогнозирования. Набор данных, предусмотренный для этой работы, позволяет анализировать рекорд 200 000 несчастных случаев в штате Сиэтл, с 2004 года на дату выпущено, в котором записаны 37 атрибутов или переменные, и кодификация типа аварии разрешена, сгруппирован в соответствии с 84 кодами. Информация может быть извлечена из него:
Скорость информации Информация о дорожных условиях и видимости Тип столкновения пострадавшие люди, так далее
Данные будут использоваться, чтобы мы могли определить, какие атрибуты являются наиболее распространенными в дорожно-транспортных происшествиях, чтобы целенаправить профилактику на этих точках высокой заболеваемости.
Источник данных
Источник данных: Эти данные были собраны и разделены полицейским отделением Сиэтла (записями трафика) и предоставляются Coursera для скачивания через ссылку.
Расположение данных: Coursera Capstone/Активы данных
Набор данных Имя: столкновения данных (1) _shaped.csv
Методология
Задача: Целью данного проекта является предсказание серьезности дорожно-транспортного происшествия на основе других характеристик, содержащихся в докладе.
Пакеты и библиотеки: Мы будем использовать библиотеки и пакеты для манипулирования как для управления данными, так и для визуализации данных. Панда, Numpy, Scipy, Matplotlib, Meanborn
Анализ данных будет выполнен, чтобы определить, какой тип методологии и изучения машины будет наиболее подходящим, в дополнение к получению первого контакта с данными, которые мы находим более актуальным для использования в этом проекте.
Получение и очистка данных
Импорт библиотек и пакетов
import pandas as pd import numpy as np from sklearn.model_selection import train_test_split from sklearn.neighbors import KNeighborsClassifier from sklearn.metrics import classification_report from sklearn.tree import DecisionTreeClassifier from sklearn import svm from sklearn.metrics import f1_score from sklearn.metrics import accuracy_score from sklearn import preprocessing from sklearn.linear_model import LogisticRegression print('imported')
Загрузка данных
df_data_1 = pd.read_csv(Data-Collisions.csv) df_data_1.head()
# choosing the data we will work with test = ['SEVERITYCODE', 'SPEEDING','ROADCOND'] df_data_1 = df_data_1[test] # obtaining data dimensions for feature in ["SPEEDING", "ROADCOND"]: print(df_data_1[feature].unique())
[‘N’ ‘y’] [‘Влажный’ ‘ Сухой «неизвестный» «снег/слячок» Лед “« другой » Песок/грязь/грязь ” Стоящая вода «нефть»]
# in speed we replace Nan with a negative value N df_data_1['SPEEDING'] = df_data_1['SPEEDING'].fillna('N') #we replace the value Nan declaring it as unknown too df_data_1['ROADCOND'] = df_data_1['ROADCOND'].fillna('Unknown') # checking value once again... for feature in ["SPEEDING", "ROADCOND"]: print(df_data_1[feature].unique())
[‘N’ ‘y’] [‘Влажный’ ‘ Сухой «неизвестный» «снег/слячок» Лед “« другой » Песок/грязь/грязь ” Стоящая вода «нефть»]
# We assign new values to roadcond df_data_1['ROADCOND'].replace(to_replace=['Wet','Dry','Unknown','Snow/Slush','Ice','Other','Sand/Mud/Dirt','Standing Water','Oil'], value = ['Dangerous','Normal','Normal','Dangerous','Dangerous','Normal','Dangerous','Dangerous','Dangerous'], inplace=True)
df_data_1["SPEEDING"].replace(to_replace=['N', 'Y'], value=[0,1], inplace=True) df_data_1['ROADCOND'].replace(to_replace=['Dangerous','Normal'],value=[0,1],inplace=True) test_condition = df_data_1[['SPEEDING','ROADCOND']] test_condition.head()
|. |. Ускорение |. Roadcond |. |. ————– |: ————: ||. 0 |. 0 |. 0 |. |. 1 |. 0 |. 0 |. |. 2 |. 0 |. 1 |. |. 3 |. 0 |. 1 |. |. 4 |. 0 |. 0 |.
Обучение модели
x = test_condition y = df_data_1['SEVERITYCODE'].values.astype(str) x = preprocessing.StandardScaler().fit(x).transform(x) x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2, random_state=1234) # obtaining data dimensions print("Training set: ", x_train.shape, y_train.shape) print("Testing set: ", x_test.shape, y_test.shape)
Учебный набор: (155738, 2) (155738,) Набор тестирования: (38935, 2) (38935,)
Выбор методов: Модель дерева, логистическая регрессия и методология KNN
#Tree model Tree_model = DecisionTreeClassifier(criterion="entropy", max_depth = 4) Tree_model.fit(x_train, y_train) predicted = Tree_model.predict(x_test) Tree_f1 = f1_score(y_test, predicted, average='weighted') Tree_acc = accuracy_score(y_test, predicted)
#Logistic Regression LR_model = LogisticRegression(C=0.01, solver='liblinear').fit(x_train, y_train) predicted = LR_model.predict(x_test) LR_f1 = f1_score(y_test, predicted, average='weighted') LR_acc = accuracy_score(y_test, predicted)
#KNN methodology KNN_model = KNeighborsClassifier(n_neighbors = 4).fit(x_train, y_train) predicted = KNN_model.predict(x_test) KNN_f1 = f1_score(y_test, predicted, average='weighted') KNN_acc = accuracy_score(y_test, predicted)
Полученные результаты
Сравнение результатов полученный
results = { "Method of Analisys": ["KNN", "Decision Tree", "LogisticRegression"], "F1-score": [KNN_f1, Tree_f1, LR_f1], "Accuracy": [KNN_acc, Tree_acc, LR_acc] } results = pd.DataFrame(results) results
|. |. Способ анализа | F1-Оценка | Точность |. |. ————————- |: ———-: |: ——–: ||. 0 |. КНН |. 0.591378 |. 0,69675 |. |. 1 |. Дерево решений |. 0.576051 |. 0,699679 |. |. 2 |. Логистикарессия |. 0.576051 |. 0,699679 |.
# Comparing results using LR results = { "Intercept": LR_model.intercept_, "SPEEDING ": LR_model.coef_[:,0], "ROADCOND ": LR_model.coef_[:,1], } results = pd.DataFrame(results) results
| | Перехватить |. Ускорение |. Roadcond |. |. —— ——— |: ———-: |: ———: ||. 0 |. -0,853729 |. 0,067702 |. -0.068295 |.
Глядя на результаты, полученные в сравнении, понимается, что скорость и дорожные условия влияют на тяжесть дорожно-транспортных происшествий.
Оригинал: “https://dev.to/yelmartinezseo/analyzing-the-severity-of-car-accidents-cp9”