Python 如何做出新的预测
让我解释一下,我正在使用人工神经网络。 该模型有15个变量,14个独立变量和1个相依变量。 在自变量中,我有3个分类变量Python 如何做出新的预测,python,machine-learning,artificial-intelligence,prediction,Python,Machine Learning,Artificial Intelligence,Prediction,让我解释一下,我正在使用人工神经网络。 该模型有15个变量,14个独立变量和1个相依变量。 在自变量中,我有3个分类变量 (星期几、月份、方向(北、南等)。 我已经对他们进行了编码(星期一=1,星期二=2,等等…, 我还对它们进行热编码 (星期一=[1,0,0,0],星期二=[0,1,0,0]) 我的问题是,我怎样才能用新的值做出预测,像这样的事情 X=['Monday','January','South'] 这是密码 # Classification template # Importin
(星期几、月份、方向(北、南等)
。
我已经对他们进行了编码(星期一=1,星期二=2,等等…,
我还对它们进行热编码
(星期一=[1,0,0,0],星期二=[0,1,0,0])
我的问题是,我怎样才能用新的值做出预测,像这样的事情
X=['Monday','January','South']
这是密码
# Classification template
# Importing the libraries
import numpy as np
import pandas as pd
# Importing the dataset
dataset = pd.read_csv('clean.csv')
X = dataset.iloc[:, [4,5,6,9,12,15,16]].values
y = dataset.iloc[:, 14].values
#Encoding categorical Data
from sklearn.preprocessing import LabelEncoder, OneHotEncoder
labelenconder_X = LabelEncoder()
X[:,1] = labelenconder_X.fit_transform(X[:,1])
labelenconder_X_2 = LabelEncoder()
X[:,2] = labelenconder_X_2.fit_transform(X[:,2])
labelenconder_X_7 = LabelEncoder()
X[:,4] = labelenconder_X_7.fit_transform(X[:,4])
labelenconder_X_9 = LabelEncoder()
X[:,5] = labelenconder_X_9.fit_transform(X[:,5])
labelenconder_X_10 = LabelEncoder()
X[:,6] = labelenconder_X_10.fit_transform(X[:,6])
onehotencoder = OneHotEncoder(categorical_features=[1,2,4,5,6])
X = onehotencoder.fit_transform(X).toarray()
X = X[:, 1:]
# Splitting the dataset into the Training set and Test set
from sklearn.cross_validation import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.25, 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)
# Fitting classifier to the Training set
# Create your classifier here
import keras
from keras.models import Sequential
from keras.layers import Dense
classifier = Sequential()
#INPUT LAYER AND HIDDEN LAYER
classifier.add(Dense(units = 5, kernel_initializer = 'uniform', activation = 'relu', input_dim =9))
#ADDING SECOND HIDDEN LAYER
classifier.add(Dense(units = 5, kernel_initializer = 'uniform', activation = 'relu'))
#adding output node
classifier.add(Dense(units= 1, kernel_initializer = 'uniform', activation = 'sigmoid'))
#Applygin Stochasting Gradient Descent
classifier.compile(optimizer='adam', loss = 'binary_crossentropy', metrics=['accuracy'])
classifier.fit(X_train, y_train, batch_size =28, epochs = 100)
classifier.save('ANN2.h5')
model = keras.models.load_model('ANN2.h5')
y_predict = model.predict(X_test)
y_predict = (y_predict > 0.40)
如果要对一周中的所有日子进行编码以进行预测,那么周一可能应该是
[1,0,0,0,0,0]
。或者使用回归(0.0-6.0)代替分类
但是,由于您在这里使用了X
而不是y
,我不确定您提供的X=['Monday'、'一月'、'South']
是否是输入而不是输出(y
)。如果是,则不需要一次热编码,只需使用X=[0,0,2]进行编码即可
- 星期一0
- 星期二1
- 1月0日
- 二月一日
- 北0
- 东1
我同意@morsecodist的观点,即需要更多信息才能正确回答您的问题。您是否在图书馆工作?这是你亲手实现的吗?如果是这样,我们可以知道哪个库或看到一些代码。我不认为这个问题可以用给出的信息来回答。这是代码。我想知道是否有办法知道[0,0,0,1,0]的哪个组合对应于哪个值,或者我是否可以给它一个字符串(在分类变量中)并根据它对应的二进制代码来更改它