CoolFace
Apppublic

MulukenS/IDS

sourceHugging Faceapache-2.0updated 2y agoView on Hugging Face
0likes
app.py61 linesDownload Raw Back to root
1#!/usr/bin/env python2# coding: utf-83import polars as pl4from tensorflow.keras.models import Sequential5from tensorflow.keras.layers import Dense6from sklearn.model_selection import train_test_split7dict_data={}8df = pl.read_csv("merged_data.csv",encoding="latin-1")9print(df.shape)10print(df.dtypes)11print(df.columns)12label_count = df[' Label'].value_counts()13print(label_count)14import pandas as pd15from sklearn.preprocessing import StandardScaler16import csv17import numpy as np18#data = pd.read_csv('merged_data.csv', low_memory=False)19#311934520chunk_size = 10000021 22# Numerical features to scale23# numerical_features = ['Flow ID', 'Source IP', 'Destination IP', 'Label']24 25scaler = StandardScaler()26print(type(df))27 28 29y = df.select(' Label')30X = df.drop(' Label')31print(f"Processed chunk with {len(X)} rows")32 33# Assuming y_train contains your target labels34num_classes = len(np.unique(y))  # Calculate the number of unique classes35 36# Split data into training and testing sets37X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)38 39print(f"X_train shape: {X_train.shape}")  # Should be (num_samples, num_features)40print(f"y_train shape: {y_train.shape}")41 42print(X_train.shape)43# Create MLP model44 45model = Sequential()46model.add(Dense(32, activation='relu', input_dim=X_train.shape[1]))  # Input layer with 84 neurons47model.add(Dense(32, activation='relu'))  # Hidden layer with 64 neurons48model.add(Dense(num_classes, activation='softmax'))  # Output layer with num_classes neurons (adjust num_classes)49 50# Compile the model51model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])52 53# Train the model54model.fit(X_train, y_train, epochs=1000, batch_size=32, validation_data=(X_test, y_test))55 56# Evaluate the model57loss, accuracy = model.evaluate(X_test, y_test)58print('Test accuracy:', accuracy)59 60filename = 'finalized_model.sav'61pickle.dump(model, open(filename, 'wb'))