import numpy as np
from keras import models
from keras import layers
from keras.datasets import boston_housing

import	sys,csv

MyList = []
with	open('train.csv',	'r')	as	f:
				reader	=	csv.DictReader(f,	delimiter=',')
				for	row	in	reader:
								Battery_power	=	row["battery_power"]
								Blue	=	row["blue"]
								PriceRange	=	row["price_range"]
								MyList.append([Battery_power, Blue, PriceRange])

(train_data, train_targets), (test_data, test_targets) = boston_housing.load_data()

MyDataset =  np.array(MyList);
print(MyDataset.shape);
#print(train_data)

# mean = train_data.mean(axis=0)
# train_data -= mean
# std = train_data.std(axis=0)
# train_data /= std
# test_data -= mean
# test_data /= std
#
# def build_model():
#     model = models.Sequential()
#     model.add(layers.Dense(64, activation='relu',input_shape=(train_data.shape[1],)))
#     model.add(layers.Dense(64, activation='relu'))
#     model.add(layers.Dense(1))
#     model.compile(optimizer='rmsprop', loss='mse', metrics=['mae'])
#     return model
#
# k = 4
# num_val_samples = len(train_data) // k
# num_epochs = 100
# all_scores = []
#
# for i in range(k):
#     print('processing fold #', i)
#     val_data = train_data[i * num_val_samples: (i + 1) * num_val_samples]
#     val_targets = train_targets[i * num_val_samples: (i + 1) * num_val_samples]
#
#     partial_train_data = np.concatenate([train_data[:i * num_val_samples],train_data[(i + 1) * num_val_samples:]],axis=0)
#     partial_train_targets = np.concatenate([train_targets[:i * num_val_samples],train_targets[(i + 1) * num_val_samples:]],axis=0)
#     model = build_model()
#     model.fit(partial_train_data, partial_train_targets,epochs=num_epochs, batch_size=1, verbose=0)
#     val_mse, val_mae = model.evaluate(val_data, val_targets, verbose=0)
#     all_scores.append(val_mae)
#
# print(all_scores);

import numpy as np
from keras import models
from keras import layers
from keras.datasets import boston_housing

import	sys,csv

MyList = []
with	open('train.csv',	'r')	as	f:
				reader	=	csv.DictReader(f,	delimiter=',')
				for	row	in	reader:
								Battery_power	=	row["battery_power"]
								Blue	=	row["blue"]
								PriceRange	=	row["price_range"]
								MyList.append([Battery_power, Blue, PriceRange])

(train_data, train_targets), (test_data, test_targets) = boston_housing.load_data()

MyDataset =  np.array(MyList);
print(MyDataset.shape);
#print(train_data)

# mean = train_data.mean(axis=0)
# train_data -= mean
# std = train_data.std(axis=0)
# train_data /= std
# test_data -= mean
# test_data /= std
#
# def build_model():
#     model = models.Sequential()
#     model.add(layers.Dense(64, activation='relu',input_shape=(train_data.shape[1],)))
#     model.add(layers.Dense(64, activation='relu'))
#     model.add(layers.Dense(1))
#     model.compile(optimizer='rmsprop', loss='mse', metrics=['mae'])
#     return model
#
# k = 4
# num_val_samples = len(train_data) // k
# num_epochs = 100
# all_scores = []
#
# for i in range(k):
#     print('processing fold #', i)
#     val_data = train_data[i * num_val_samples: (i + 1) * num_val_samples]
#     val_targets = train_targets[i * num_val_samples: (i + 1) * num_val_samples]
#
#     partial_train_data = np.concatenate([train_data[:i * num_val_samples],train_data[(i + 1) * num_val_samples:]],axis=0)
#     partial_train_targets = np.concatenate([train_targets[:i * num_val_samples],train_targets[(i + 1) * num_val_samples:]],axis=0)
#     model = build_model()
#     model.fit(partial_train_data, partial_train_targets,epochs=num_epochs, batch_size=1, verbose=0)
#     val_mse, val_mae = model.evaluate(val_data, val_targets, verbose=0)
#     all_scores.append(val_mae)
#
# print(all_scores);

#print(train_data) # mean = train_data.mean(axis=0) # train_data -= mean # std = train_data.std(axis=0) # train_data /= std # test_data -= mean # test_data /= std # # def build_model(): #     model = models.Sequential() #     model.add(layers.Dense(64, activation='relu',input_shape=(train_data.shape[1],))) #     model.add(layers.Dense(64, activation='relu')) #     model.add(layers.Dense(1)) #     model.compile(optimizer='rmsprop', loss='mse', metrics=['mae']) #     return model # # k = 4 # num_val_samples = len(train_data) // k # num_epochs = 100 # all_scores = [] # # for i in range(k): #     print('processing fold #', i) #     val_data = train_data[i * num_val_samples: (i + 1) * num_val_samples] #     val_targets = train_targets[i * num_val_samples: (i + 1) * num_val_samples] # #     partial_train_data = np.concatenate([train_data[:i * num_val_samples],train_data[(i + 1) * num_val_samples:]],axis=0) #     partial_train_targets = np.concatenate([train_targets[:i * num_val_samples],train_targets[(i + 1) * num_val_samples:]],axis=0) #     model = build_model() #     model.fit(partial_train_data, partial_train_targets,epochs=num_epochs, batch_size=1, verbose=0) #     val_mse, val_mae = model.evaluate(val_data, val_targets, verbose=0) #     all_scores.append(val_mae) # # print(all_scores);