You are on page 1of 9

import numpy as np

import tensorflow as tf

from sklearn.model_selection import train_test_split

from sklearn.preprocessing import StandardScaler

# Input data

zones = np.array([1, 2, 3, 4, 5]).reshape(-1, 1)

trips = np.array([50, 57, 37, 66, 24]).reshape(-1, 1)

population = np.array([1100, 1200, 800, 1400, 750]).reshape(-1, 1)

# Combine the features (zones and population)

features = np.hstack((zones, population))

# Split the data into training and testing sets

X_train, X_test, y_train, y_test = train_test_split(features, trips, test_size=0.2, random_state=42)

# Standardize the data

scaler_x = StandardScaler()

scaler_y = StandardScaler()

X_train = scaler_x.fit_transform(X_train)

y_train = scaler_y.fit_transform(y_train)

X_test = scaler_x.transform(X_test)

y_test = scaler_y.transform(y_test)

# Define the neural network model

model = tf.keras.Sequential([

tf.keras.layers.Input(shape=(X_train.shape[1],)),

tf.keras.layers.Dense(1, activation='linear')

])
# Compile the model

model.compile(optimizer='adam', loss='mean_squared_error')

# Train the model

model.fit(X_train, y_train, epochs=100, batch_size=1, verbose=2)

# Evaluate the model

loss = model.evaluate(X_test, y_test, verbose=0)

print(f'Mean Squared Error on Test Data: {loss}')

# Make predictions on new data

new_data = np.array([[3, 1000]]) # Example new data: zone=3, population=1000

scaled_new_data = scaler_x.transform(new_data)

predicted_scaled_value = model.predict(scaled_new_data)

predicted_value = scaler_y.inverse_transform(predicted_scaled_value)

print(f'Predicted Trips for New Data: {predicted_value[0, 0]}')

Epoch 1/100

4/4 - 0s - loss: 1.9047 - 393ms/epoch - 98ms/step

Epoch 2/100

4/4 - 0s - loss: 1.8938 - 11ms/epoch - 3ms/step

Epoch 3/100

4/4 - 0s - loss: 1.8789 - 9ms/epoch - 2ms/step

Epoch 4/100

4/4 - 0s - loss: 1.8699 - 10ms/epoch - 3ms/step

Epoch 5/100

4/4 - 0s - loss: 1.8554 - 14ms/epoch - 3ms/step

Epoch 6/100

4/4 - 0s - loss: 1.8473 - 14ms/epoch - 3ms/step

Epoch 7/100
4/4 - 0s - loss: 1.8360 - 10ms/epoch - 3ms/step

Epoch 8/100

4/4 - 0s - loss: 1.8224 - 10ms/epoch - 3ms/step

Epoch 9/100

4/4 - 0s - loss: 1.8122 - 11ms/epoch - 3ms/step

Epoch 10/100

4/4 - 0s - loss: 1.7971 - 13ms/epoch - 3ms/step

Epoch 11/100

4/4 - 0s - loss: 1.7875 - 10ms/epoch - 3ms/step

Epoch 12/100

4/4 - 0s - loss: 1.7748 - 10ms/epoch - 3ms/step

Epoch 13/100

4/4 - 0s - loss: 1.7657 - 10ms/epoch - 3ms/step

Epoch 14/100

4/4 - 0s - loss: 1.7526 - 11ms/epoch - 3ms/step

Epoch 15/100

4/4 - 0s - loss: 1.7464 - 10ms/epoch - 3ms/step

Epoch 16/100

4/4 - 0s - loss: 1.7298 - 13ms/epoch - 3ms/step

Epoch 17/100

4/4 - 0s - loss: 1.7195 - 11ms/epoch - 3ms/step

Epoch 18/100

4/4 - 0s - loss: 1.7113 - 12ms/epoch - 3ms/step

Epoch 19/100

4/4 - 0s - loss: 1.7010 - 12ms/epoch - 3ms/step

Epoch 20/100

4/4 - 0s - loss: 1.6895 - 17ms/epoch - 4ms/step

Epoch 21/100

4/4 - 0s - loss: 1.6746 - 12ms/epoch - 3ms/step

Epoch 22/100

4/4 - 0s - loss: 1.6671 - 12ms/epoch - 3ms/step


Epoch 23/100

4/4 - 0s - loss: 1.6540 - 12ms/epoch - 3ms/step

Epoch 24/100

4/4 - 0s - loss: 1.6462 - 10ms/epoch - 2ms/step

Epoch 25/100

4/4 - 0s - loss: 1.6353 - 14ms/epoch - 3ms/step

Epoch 26/100

4/4 - 0s - loss: 1.6220 - 11ms/epoch - 3ms/step

Epoch 27/100

4/4 - 0s - loss: 1.6133 - 11ms/epoch - 3ms/step

Epoch 28/100

4/4 - 0s - loss: 1.6041 - 14ms/epoch - 3ms/step

Epoch 29/100

4/4 - 0s - loss: 1.5913 - 13ms/epoch - 3ms/step

Epoch 30/100

4/4 - 0s - loss: 1.5811 - 13ms/epoch - 3ms/step

Epoch 31/100

4/4 - 0s - loss: 1.5726 - 15ms/epoch - 4ms/step

Epoch 32/100

4/4 - 0s - loss: 1.5613 - 12ms/epoch - 3ms/step

Epoch 33/100

4/4 - 0s - loss: 1.5527 - 12ms/epoch - 3ms/step

Epoch 34/100

4/4 - 0s - loss: 1.5445 - 11ms/epoch - 3ms/step

Epoch 35/100

4/4 - 0s - loss: 1.5326 - 11ms/epoch - 3ms/step

Epoch 36/100

4/4 - 0s - loss: 1.5206 - 10ms/epoch - 3ms/step

Epoch 37/100

4/4 - 0s - loss: 1.5101 - 12ms/epoch - 3ms/step

Epoch 38/100
4/4 - 0s - loss: 1.5019 - 11ms/epoch - 3ms/step

Epoch 39/100

4/4 - 0s - loss: 1.4912 - 11ms/epoch - 3ms/step

Epoch 40/100

4/4 - 0s - loss: 1.4808 - 15ms/epoch - 4ms/step

Epoch 41/100

4/4 - 0s - loss: 1.4719 - 12ms/epoch - 3ms/step

Epoch 42/100

4/4 - 0s - loss: 1.4628 - 11ms/epoch - 3ms/step

Epoch 43/100

4/4 - 0s - loss: 1.4559 - 18ms/epoch - 4ms/step

Epoch 44/100

4/4 - 0s - loss: 1.4445 - 15ms/epoch - 4ms/step

Epoch 45/100

4/4 - 0s - loss: 1.4334 - 14ms/epoch - 3ms/step

Epoch 46/100

4/4 - 0s - loss: 1.4264 - 16ms/epoch - 4ms/step

Epoch 47/100

4/4 - 0s - loss: 1.4147 - 17ms/epoch - 4ms/step

Epoch 48/100

4/4 - 0s - loss: 1.4054 - 18ms/epoch - 4ms/step

Epoch 49/100

4/4 - 0s - loss: 1.3957 - 13ms/epoch - 3ms/step

Epoch 50/100

4/4 - 0s - loss: 1.3879 - 14ms/epoch - 3ms/step

Epoch 51/100

4/4 - 0s - loss: 1.3796 - 15ms/epoch - 4ms/step

Epoch 52/100

4/4 - 0s - loss: 1.3694 - 13ms/epoch - 3ms/step

Epoch 53/100

4/4 - 0s - loss: 1.3599 - 13ms/epoch - 3ms/step


Epoch 54/100

4/4 - 0s - loss: 1.3521 - 12ms/epoch - 3ms/step

Epoch 55/100

4/4 - 0s - loss: 1.3412 - 15ms/epoch - 4ms/step

Epoch 56/100

4/4 - 0s - loss: 1.3344 - 14ms/epoch - 3ms/step

Epoch 57/100

4/4 - 0s - loss: 1.3217 - 14ms/epoch - 4ms/step

Epoch 58/100

4/4 - 0s - loss: 1.3166 - 13ms/epoch - 3ms/step

Epoch 59/100

4/4 - 0s - loss: 1.3051 - 11ms/epoch - 3ms/step

Epoch 60/100

4/4 - 0s - loss: 1.2975 - 15ms/epoch - 4ms/step

Epoch 61/100

4/4 - 0s - loss: 1.2907 - 16ms/epoch - 4ms/step

Epoch 62/100

4/4 - 0s - loss: 1.2790 - 16ms/epoch - 4ms/step

Epoch 63/100

4/4 - 0s - loss: 1.2715 - 15ms/epoch - 4ms/step

Epoch 64/100

4/4 - 0s - loss: 1.2636 - 18ms/epoch - 5ms/step

Epoch 65/100

4/4 - 0s - loss: 1.2541 - 22ms/epoch - 5ms/step

Epoch 66/100

4/4 - 0s - loss: 1.2458 - 13ms/epoch - 3ms/step

Epoch 67/100

4/4 - 0s - loss: 1.2383 - 13ms/epoch - 3ms/step

Epoch 68/100

4/4 - 0s - loss: 1.2285 - 11ms/epoch - 3ms/step

Epoch 69/100
4/4 - 0s - loss: 1.2213 - 14ms/epoch - 4ms/step

Epoch 70/100

4/4 - 0s - loss: 1.2124 - 14ms/epoch - 3ms/step

Epoch 71/100

4/4 - 0s - loss: 1.2067 - 14ms/epoch - 3ms/step

Epoch 72/100

4/4 - 0s - loss: 1.1949 - 12ms/epoch - 3ms/step

Epoch 73/100

4/4 - 0s - loss: 1.1889 - 11ms/epoch - 3ms/step

Epoch 74/100

4/4 - 0s - loss: 1.1803 - 11ms/epoch - 3ms/step

Epoch 75/100

4/4 - 0s - loss: 1.1739 - 11ms/epoch - 3ms/step

Epoch 76/100

4/4 - 0s - loss: 1.1636 - 21ms/epoch - 5ms/step

Epoch 77/100

4/4 - 0s - loss: 1.1568 - 13ms/epoch - 3ms/step

Epoch 78/100

4/4 - 0s - loss: 1.1496 - 32ms/epoch - 8ms/step

Epoch 79/100

4/4 - 0s - loss: 1.1414 - 37ms/epoch - 9ms/step

Epoch 80/100

4/4 - 0s - loss: 1.1322 - 28ms/epoch - 7ms/step

Epoch 81/100

4/4 - 0s - loss: 1.1230 - 30ms/epoch - 8ms/step

Epoch 82/100

4/4 - 0s - loss: 1.1163 - 38ms/epoch - 10ms/step

Epoch 83/100

4/4 - 0s - loss: 1.1108 - 30ms/epoch - 8ms/step

Epoch 84/100

4/4 - 0s - loss: 1.1039 - 38ms/epoch - 10ms/step


Epoch 85/100

4/4 - 0s - loss: 1.0950 - 16ms/epoch - 4ms/step

Epoch 86/100

4/4 - 0s - loss: 1.0861 - 22ms/epoch - 6ms/step

Epoch 87/100

4/4 - 0s - loss: 1.0782 - 15ms/epoch - 4ms/step

Epoch 88/100

4/4 - 0s - loss: 1.0725 - 20ms/epoch - 5ms/step

Epoch 89/100

4/4 - 0s - loss: 1.0638 - 22ms/epoch - 6ms/step

Epoch 90/100

4/4 - 0s - loss: 1.0573 - 20ms/epoch - 5ms/step

Epoch 91/100

4/4 - 0s - loss: 1.0519 - 38ms/epoch - 10ms/step

Epoch 92/100

4/4 - 0s - loss: 1.0418 - 35ms/epoch - 9ms/step

Epoch 93/100

4/4 - 0s - loss: 1.0364 - 30ms/epoch - 8ms/step

Epoch 94/100

4/4 - 0s - loss: 1.0284 - 31ms/epoch - 8ms/step

Epoch 95/100

4/4 - 0s - loss: 1.0200 - 30ms/epoch - 7ms/step

Epoch 96/100

4/4 - 0s - loss: 1.0145 - 24ms/epoch - 6ms/step

Epoch 97/100

4/4 - 0s - loss: 1.0055 - 24ms/epoch - 6ms/step

Epoch 98/100

4/4 - 0s - loss: 0.9989 - 23ms/epoch - 6ms/step

Epoch 99/100

4/4 - 0s - loss: 0.9949 - 25ms/epoch - 6ms/step

Epoch 100/100
4/4 - 0s - loss: 0.9858 - 25ms/epoch - 6ms/step

Mean Squared Error on Test Data: 1.0005065202713013

1/1 [==============================] - 0s 333ms/step

Predicted Trips for New Data: 42.16230010986328

You might also like