Как отобразить фактические и прогнозируемые данные ANN из набора данных 2x300? - PullRequest
1 голос
/ 08 марта 2019

Задача

Мои данные содержат среднемесячную температуру за 1991-2015 годы. Имеет столбец Год и Тас. Я сделал с моделью SVM и DT, она отображает фактические данные и прогнозные данные, но с ANN, это не может сделать это. Может кто-нибудь объяснить мне, почему?

Сценарий

from keras.models import Sequential
    from keras.layers import Dense
    import numpy
    # fix random seed for reproducibility
    numpy.random.seed(7)
    import pandas as pd
    # load pima indians dataset
    dataset = pd.read_csv(r"C:\Users\admin\Desktop\Machine Learning\Temperature.csv")
    # split into input (X) and output (Y) variables
    x = dataset.iloc[:,0:1].values
    y = dataset.iloc[:,1].values
    from sklearn.model_selection import train_test_split  
    x_train, x_test, y_train, y_test= train_test_split(x, y, test_size = 0.20,random_state=0)


    # create model
    model = Sequential()
    model.add(Dense(12, input_dim=1, activation='relu'))
    model.add(Dense(1, activation='sigmoid'))
    # Compile model
    model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])


    # Fit the model
    model.fit(x, y, epochs=150, batch_size=10)
    pred = model.predict(x_test)

    from sklearn.preprocessing import StandardScaler  
    scaler = StandardScaler()  
    scaler.fit(x_train)

    x_train = scaler.transform(x_train)  
    x_test = scaler.transform(x_test)  

    import matplotlib.pyplot as plt
    plt.plot(x_test)
    plt.plot(pred, color='red')
    plt.show()

    from sklearn import metrics
    import numpy as np
    print('Mean Absolute Error for temp:',metrics.mean_absolute_error(y_test,pred))
    print('Mean Squared Error for temp:',metrics.mean_squared_error(y_test,pred))
    print('Root Mean Squared Error for temp:',np.sqrt(metrics.mean_squared_error(y_test,pred)))

    # evaluate the model
    scores = model.evaluate(x,y)
    print("\n%s: %.2f%%" % (model.metrics_names[1], scores[1]*100))`

Это должно сделать, если я поставлю эту кодировку:

predsvmtemp = regressor.predict(x_test)

#compare the actual data and predicted data values
resulttemp=pd.DataFrame({'Actual data':y_test,'Predicted data':resulttemp})

Он должен отображать результаты, но он не работает только с ANN.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...