การทำนายข้อมูลด้วย MLPClassifier (Train)
..
👉..
# Import necessary libraries
import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler, LabelEncoder
from sklearn.neural_network import MLPClassifier
from sklearn.metrics import classification_report, confusion_matrix, ConfusionMatrixDisplay
import matplotlib.pyplot as plt
from sklearn.metrics import accuracy_score
import joblib
# Load data from CSV
df = pd.read_csv(r"C:\Users\user\Desktop\electric_signal_data.csv")
# Separate features and labels
features = df.iloc[:, :-1].values # Features
labels = df.iloc[:, -1].values # Labels
# Standardize features
scaler = StandardScaler()
features = scaler.fit_transform(features)
# Encode labels
label_encoder = LabelEncoder()
labels_encoded = label_encoder.fit_transform(labels)
# Split data into training and testing sets
X_train, X_test, y_train, y_test = train_test_split(features, labels_encoded, test_size=0.05, random_state=42)
X_train_scaled = scaler.transform(X_train)
X_test_scaled = scaler.transform(X_test)
# Define the neural network model
model = MLPClassifier(hidden_layer_sizes=(50, 64, 32), activation='relu', max_iter=1000, random_state=42)
# Train the model
model.fit(X_train, y_train)
# Evaluate the model
y_pred = model.predict(X_test)
# Plot the loss curve
plt.figure(figsize=(8, 6))
plt.plot(model.loss_curve_, label='Training Loss')
plt.title('Learning Curve for MLPClassifier')
plt.xlabel('Iteration')
plt.ylabel('Loss')
plt.legend()
plt.grid(True)
plt.show()
# Save the model
joblib.dump(model, r"C:\Users\user\Desktop\mlp_model.pkl")
เมื่อรันโปรแกรมแล้วผลลัพท์ที่ได้