43 lines
1.6 KiB
Python
43 lines
1.6 KiB
Python
import pandas as pd
|
|
from matplotlib import pyplot as plt
|
|
from sklearn.model_selection import train_test_split
|
|
from sklearn.neural_network import MLPRegressor
|
|
|
|
# Загрузка данных из файла
|
|
data = pd.read_csv("CO2.csv")
|
|
data = data.dropna()
|
|
data = data[data.Country != 'Global']
|
|
|
|
# Выбор признаков и целевой переменной
|
|
features = data[['Flaring', 'Gas']]
|
|
task = data['Other']
|
|
|
|
# Разделение данных на обучающую и тестовую выборки
|
|
X_train, X_test, y_train, y_test = train_test_split(features, task, test_size=0.1, random_state=42)
|
|
|
|
# Обучение модели
|
|
model = MLPRegressor(
|
|
hidden_layer_sizes=(25, 25),
|
|
activation='relu',
|
|
solver='adam',
|
|
random_state=42
|
|
)
|
|
model.fit(X_train, y_train)
|
|
|
|
# Оценка качества модели на тестовой выборке
|
|
y_pred = model.predict(X_test)
|
|
score = model.score(X_test, y_test)
|
|
print("Коэффициент детерминации на тестовых данных:", score)
|
|
|
|
# Оценка точности модели на тестовой выборке
|
|
accuracy = model.score(X_test, y_test)
|
|
print(f'Точность модели: {accuracy}')
|
|
|
|
# Визуализация модели
|
|
plt.scatter(y_test, y_pred)
|
|
plt.plot([y_test.min(), y_test.max()],
|
|
[y_test.min(), y_test.max()], lw=2)
|
|
plt.xlabel('Фактическое значение')
|
|
plt.ylabel('Предсказанное значение')
|
|
plt.title('Результаты предсказания модели MLPRegressor количества выбросов промышленным производством')
|
|
plt.show() |