【问题标题】:How to make a new prediction如何做出新的预测
【发布时间】:2023-03-16 08:38:01
【问题描述】:

让我解释一下,我正在使用人工神经网络。 该模型有 15 个变量,14 个独立变量和一个依赖变量。 在自变量中,我有 3 个分类变量 (day of week, month, direction(north,south, etc...))。 我已经enconde他们(monday = 1, tuesday = 2, and so...), 我也对它们进行热编码 (monday = [1,0,0,0], tuesday = [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)

【问题讨论】:

  • 您在与图书馆合作吗?您是否手动实现了这一点?如果是这样,我们可以知道哪个库或查看一些代码。我认为所提供的信息无法回答这个问题。
  • 有代码。
  • 我想知道是否有某种方法可以知道 [0,0,0,1,0] 的哪个组合对应于哪个值,或者我是否可以给它一个字符串(在分类变量中)并根据其对应的二进制码进行更改

标签: python machine-learning artificial-intelligence prediction


【解决方案1】:

如果您想对一周中的所有天进行编码以进行预测,星期一可能应该是[1,0,0,0,0,0,0]。或者您使用回归 (0.0 - 6.0) 而不是分类。

但是,由于您在这里使用了X 而不是y,我不确定您提供的X=['Monday','January','South'] 是否是输入而不是输出(y)。如果是,您不需要一次性编码,您可以编码为例如X=[0,0,2]

  • 星期一 0
  • 星期二 1
  • ...
  • 1 月 0 日
  • 2 月 1 日
  • 北0
  • 东1
  • ...

我同意@morsecodist 的观点,即需要更多信息才能正确回答您的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-14
    • 1970-01-01
    • 1970-01-01
    • 2012-07-12
    • 2018-05-18
    • 1970-01-01
    • 2015-03-30
    • 1970-01-01
    相关资源
    最近更新 更多