Анализ пропущенных значений
Программа:
print("АНАЛИЗ ПРОПУЩЕННЫХ ЗНАЧЕНИЙ")missing_data = df.isnull().sum()missing_percent = (df.isnull().sum() / len(df)) * 100
missing_info = pd.DataFrame({
'Количество пропусков': missing_data,
'Процент пропусков': missing_percent.round(2)})display(missing_info)
Результат работы программы:
|
Количество пропусков |
Процент пропусков |
Cement |
0 |
0.0 |
Blast Furnace Slag |
0 |
0.0 |
Fly Ash |
0 |
0.0 |
Water |
0 |
0.0 |
Superplasticizer |
0 |
0.0 |
Coarse Aggregate |
0 |
0.0 |
Fine Aggregate |
0 |
0.0 |
Age (day) |
0 |
0.0 |
Concrete compressive strength |
0 |
0.0 |
Наблюдения:
Анализ показал полное отсутствие пропущенных значений во всех атрибутах датасета о прочности бетона. Это свидетельствует о высоком качестве исходных данных, собранных в контролируемых лабораторных условиях. Отсутствие пропусков исключает необходимость применения методов импутации, что упрощает процесс предобработки и повышает надёжность статистических выводов. Однако для полноты исследования были рассмотрены потенциальные стратегии обработки пропусков, которые могли бы быть применены в случае их наличия.
Рекомендуемые методы для подобных технических данных:
KNN Imputer — если есть корреляции между компонентами смеси
Заполнение нулями — для добавок, которые могли не использоваться
Медианная импутация — для числовых параметров со случайными пропусками
Матрица корреляций
Программа для создания матрицы корреляций:
# Визуализация матрицы корреляцийplt.figure(figsize=(12, 8))sns.heatmap(correlation_matrix, annot=True, cmap='coolwarm', center=0,
square=True, fmt='.2f')plt.title('МАТРИЦА КОРРЕЛЯЦИЙ')plt.tight_layout()plt.show()
Результат работы программы:
Анализ высокоррелированных пар
Программа для анализа высококоррелированных пар:
print("АНАЛИЗ ВЫСОКОКОРРЕЛИРОВАННЫХ ПАР")high_corr_pairs = []
for i in range(len(correlation_matrix.columns)):
for j in range(i+1, len(correlation_matrix.columns)):
corr_value = correlation_matrix.iloc[i, j]
if abs(corr_value) > 0.6:
high_corr_pairs.append({
'Параметры': f"{correlation_matrix.columns[i]} - {correlation_matrix.columns[j]}",
'Коэффициент корреляции': corr_value.round(3),
'Характер корреляции': 'Положительная' if corr_value > 0 else 'Отрицательная',
'Сила корреляции': 'Сильная' if abs(corr_value) > 0.7 else 'Умеренная'
})
high_corr_df = pd.DataFrame(high_corr_pairs)high_corr_df
Результаты работы программы:
|
Параметры |
Коэффициент корреляции |
Характер корреляции |
Сила корреляции |
0 |
Water - Superplasticizer |
-0.657 |
Отрицательная |
Умеренная |
Наблюдения:
Анализ корреляций выявил умеренную отрицательную зависимость между содержанием воды и суперпластификатора в бетонной смеси (r = -0.657). Это соответствует технологическим принципам: суперпластификатор применяется как замена части воды для сохранения удобоукладываемости при повышении прочности.
