ANN Новые прогнозы из набора данных CSV - PullRequest
0 голосов
/ 22 сентября 2019

Я могу делать одиночные прогнозы в коде.Тем не менее, как я могу получить новые прогнозы из набора данных файла CSV, где есть несколько строк для прогнозирования.И затем, как я могу экспортировать результаты в CSV с выровненными прогнозами.

Предварительная обработка данных в том же методе, что и исходный набор данных, не будет работать так же, как мои категориальные данные обрабатываются по-разному вновые данные прогнозов.


#------------------------ Data Setup ------------------------#

# Importing the libraries
import numpy as np
import pandas as pd

# Importing the dataset
dataset = pd.read_csv('RBDResults.csv')
X = dataset.iloc[:, 1:11].values
y = dataset.iloc[:, 11].values

#Encoding Catagorical Data
from sklearn.preprocessing import OneHotEncoder
from sklearn.compose import ColumnTransformer

#Country Var + Convert Catagories Into Integers
ct = ColumnTransformer(
    [('one_hot_encoder', OneHotEncoder(), [0])],    # Column To Be Transformed
    remainder='passthrough'                         
)
X = np.array(ct.fit_transform(X), dtype=np.float)

#Fix Dummy Variable Trap
X = X[:, 1:]

#------------------------ New Data ------------------------#

#Import Check File
new_data = pd.read_csv('RBDResults_New.csv')
X_New = new_data.iloc[:, 1:10]
#Country Var + Convert Catagories Into Integers
ct = ColumnTransformer(
    [('one_hot_encoder', OneHotEncoder(), [0])],    # Column To Be Transformed
    remainder='passthrough'                         
)
X_New = np.array(ct.fit_transform(X_New), dtype=np.float)

#Fix Dummy Variable Trap
X_New = X[:, 1:]

#------------------------ End New Data ------------------------#

# Splitting the dataset into the Training set and Test set
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.2, random_state = 0)

# Feature Scaling
from sklearn.preprocessing import StandardScaler
sc = StandardScaler()
X_train = sc.fit_transform(X_train)
X_test = sc.transform(X_test)

#CREATE NEURAL NETWORK

#Import Keras Libary and Packages
import keras
from keras.models import Sequential
from keras.layers import Dense
from keras.layers import Dropout

#------------------------ Create Neural Network ------------------------#


classifier = Sequential()
classifier.add(Dense(units = 12, kernel_initializer = 'uniform', activation = 'relu', input_dim = 24))
classifier.add(Dropout(rate = 0.1))
classifier.add(Dense(units = 12, kernel_initializer = 'uniform', activation = 'relu'))
classifier.add(Dropout(rate = 0.1))
classifier.add(Dense(units = 1, kernel_initializer = 'uniform', activation = 'sigmoid'))

classifier.compile(optimizer = 'rmsprop', loss = 'binary_crossentropy', metrics = ['accuracy'])

classifier.fit(X_train, y_train, batch_size = 32, epochs = 100)

y_pred = classifier.predict(X_test)
y_pred = (y_pred > 0.5)

#Make The Confusion Matrix
from sklearn.metrics import confusion_matrix
cm = confusion_matrix(y_test, y_pred)```
...