super wyniki ewaluacji

This commit is contained in:
Dominik Strzako 2021-05-15 16:59:57 +02:00
parent ca74151be3
commit 96648232b5
2 changed files with 66 additions and 29 deletions

View File

@ -1,25 +1,48 @@
import pandas as pd import pandas as pd
import numpy as np import numpy as np
from os import path
from tensorflow import keras from tensorflow import keras
import sys
import matplotlib.pyplot as plt import matplotlib.pyplot as plt
from sklearn.metrics import accuracy_score, classification_report from sklearn.metrics import accuracy_score
from sklearn.preprocessing import StandardScaler, LabelEncoder
model = keras.models.load_model('wine_model.h5') model = keras.models.load_model('wine_model.h5')
print('evaluating') print('evaluating')
test_df =pd.read_csv('test.csv') data =pd.read_csv('test.csv')
y_test = test_df.quality
x_test = test_df.drop(['quality'], axis= 1)
x_test=((x_test-x_test.min())/(x_test.max()-x_test.min())) #Normalizacja #########################################
y_pred = model.predict(x_test) y = data['quality']
x = data.drop('quality', axis=1)
citricacid = x['fixed acidity'] * x['citric acid']
citric_acidity = pd.DataFrame(citricacid, columns=['citric_accidity'])
density_acidity = x['fixed acidity'] * x['density']
density_acidity = pd.DataFrame(density_acidity, columns=['density_acidity'])
x = data.join(citric_acidity).join(density_acidity)
print(y)
bins = (2, 5, 8)
gnames = ['bad', 'nice']
y = pd.cut(y, bins = bins, labels = gnames)
enc = LabelEncoder()
yenc = enc.fit_transform(y)
scale = StandardScaler()
scaled_x = scale.fit_transform(x)
##################################
y_pred = model.predict(scaled_x)
y_pred = np.around(y_pred, decimals=0) y_pred = np.around(y_pred, decimals=0)
results = accuracy_score(y_test,y_pred) results = accuracy_score(yenc,y_pred)
with open('results.txt', 'a+', encoding="UTF-8") as f: with open('results.txt', 'a+', encoding="UTF-8") as f:
f.write(str(results) +"\n") f.write(str(results) +"\n")

View File

@ -4,33 +4,47 @@ from sklearn.metrics import accuracy_score, classification_report
import pandas as pd import pandas as pd
from sklearn.model_selection import train_test_split from sklearn.model_selection import train_test_split
import numpy as np import numpy as np
import sys from sklearn.preprocessing import StandardScaler, LabelEncoder
from tensorflow.keras.optimizers import Adam
wine=pd.read_csv('train.csv') wine=pd.read_csv('train.csv')
wine
y = wine.quality y = wine['quality']
y.head() x = wine.drop('quality', axis=1)
x = wine.drop(['quality'], axis= 1) citricacid = x['fixed acidity'] * x['citric acid']
x.head() citric_acidity = pd.DataFrame(citricacid, columns=['citric_accidity'])
x=((x-x.min())/(x.max()-x.min())) #Normalizacja density_acidity = x['fixed acidity'] * x['density']
density_acidity = pd.DataFrame(density_acidity, columns=['density_acidity'])
x_train, x_test, y_train, y_test = train_test_split(x,y , test_size=0.2,train_size=0.8, random_state=21)
def regression_model(): x = wine.join(citric_acidity).join(density_acidity)
model = Sequential()
model.add(Dense(4,activation = "relu", input_shape = (x_train.shape[1],)))
model.add(Dense(8,activation = "relu"))
model.add(Dense(8,activation = "relu"))
model.add(Dense(1,activation = "relu"))
model.compile(optimizer = "adam", loss = "mean_squared_error") bins = (2, 5, 8)
return model gnames = ['bad', 'nice']
y = pd.cut(y, bins = bins, labels = gnames)
model = regression_model() enc = LabelEncoder()
model.fit(x_train, y_train, batch_size=int(sys.argv[1]), epochs = int(sys.argv[1])) #verbose = 1 yenc = enc.fit_transform(y)
model.save('wine_model.h5') scale = StandardScaler()
scaled_x = scale.fit_transform(x)
NeuralModel = Sequential([
Dense(128, activation='relu', input_shape=(14,)),
Dense(32, activation='relu'),
Dense(64, activation='relu'),
Dense(64, activation='relu'),
Dense(64, activation='relu'),
Dense(1, activation='sigmoid')
])
rms = Adam(lr=0.0003)
NeuralModel.compile(optimizer=rms, loss='binary_crossentropy', metrics=['accuracy'])
NeuralModel.fit(scaled_x, yenc, epochs=15) #verbose = 1
NeuralModel.save('wine_model.h5')