Вид РИД
Программа для ЭВМ
import numpy as np import pandas as pd import matplotlib.pyplot as plt from keras.models import Sequential, load_model from keras.layers import Dense from keras.callbacks import ModelCheckpoint from sklearn.model_selection import train_test_split from sklearn.preprocessing import StandardScaler, LabelEncoder from sklearn.metrics import confusion_matrix, classification_report data = pd.read_csv('production_line_data.csv') le = LabelEncoder() data['category_feature'] = le.fit_transform(data['category_feature']) scaler = StandardScaler() data[['num_feature1', 'num_feature2']] = scaler.fit_transform(data[['num_feature1', 'num_feature2']]) X = data.drop('target', axis=1) y = data['target'] X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) model = Sequential() model.add(Dense(64, input_dim=X_train.shape[1], activation='relu')) model.add(Dense(32, activation='relu')) model.add(Dense(16, activation='relu')) model.add(Dense(1, activation='sigmoid')) model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy']) checkpoint = ModelCheckpoint('best_model.h5', save_best_only=True, monitor='val_loss', mode='min') model.fit(X_train, y_train, validation_split=0.2, epochs=150, batch_size=10, callbacks=[checkpoint]) model = load_model('best_model.h5') _, train_acc = model.evaluate(X_train, y_train) _, test_acc = model.evaluate(X_test, y_test) print('Train: %.3f, Test: %.3f' % (train_acc, test_acc)) y_pred = model.predict_classes(X_test) print(classification_report(y_test, y_pred)) conf_mat = confusion_matrix(y_test, y_pred) plt.figure(figsize=(8, 6)) plt.matshow(conf_mat, cmap=plt.cm.Blues, alpha=0.3) for i in range(conf_mat.shape[0]): for j in range(conf_mat.shape[1]): plt.text(x=j, y=i, s=conf_mat[i, j], va='center', ha='center') plt.xlabel('Predicted label') plt.ylabel('True label') plt.title('Confusion Matrix') plt.show()