Skip to content

Commit

Permalink
Added data with access to electricity to have binary classification
Browse files Browse the repository at this point in the history
  • Loading branch information
Saad-Mufti committed Nov 22, 2019
1 parent 3739ad5 commit 53b468a
Show file tree
Hide file tree
Showing 3 changed files with 8,491 additions and 17 deletions.
46 changes: 29 additions & 17 deletions Energy Plants.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,36 +14,48 @@
from scipy.spatial.distance import pdist
import geopy.distance

dataset = pd.read_csv('C:/Users/Saad Mufti/Documents/GitHub/Energy-Plant-Locations-Quantum-Optimization/EnergyAccessDataset.csv', encoding='ANSI')
dataset = pd.read_csv('C:/Users/Saad Mufti/Documents/GitHub/Energy-Plant-Locations-Quantum-Optimization/EnergyAccessSurveyFull.csv', low_memory=False, encoding='ANSI')
dataset = dataset.set_index('Sr_ no_')
dataset = dataset.drop_duplicates(subset='GPS')
dataset = dataset[['GPS', 'ES3']]
dataset[['Elec_access']] = dataset[['ES3']] != 7
without_elec = dataset.loc[dataset['Elec_access'] == False]
without_elec = without_elec.drop_duplicates(subset='GPS')
print(without_elec)

dataset = dataset.drop_duplicates(subset='GPS')
# dataset = dataset[['GPS', 'ES3']]
dataset.append(without_elec)

print('Dataset has', len(dataset))

#TODO: Use bigger dataset instead so can get trues and falses. Then apply algo
# bools = dataset

# bools[['Elec_access']] = dataset[['ES3']] != 7
# bools = list(bools['Elec_access'])
# print(bools)
# print(bools.loc[bools['Elec_access'] == False])
bools = list(without_elec['Elec_access'])
dataset = dataset[['GPS']]

dataset[['Latitude', 'Longitude']] = dataset['GPS'].str.split(',', expand=True)
dataset = dataset.drop(['GPS'], axis=1)
# print(dataset)

distance_matrix = np.array(dataset[['Latitude', 'Longitude']])
# print(bools)
dataset_sample = pd.concat([without_elec[['GPS']], dataset.sample(8)])
print(dataset_sample)
# dataset_sample = dataset_sample[['GPS']]
dataset_sample[['Latitude', 'Longitude']] = dataset_sample['GPS'].str.split(',', expand=True)
dataset_sample = dataset_sample.drop(['GPS'], axis=1)
print(dataset_sample)

distance_matrix = np.array(dataset_sample[['Latitude', 'Longitude']])
# print(distance_matrix)

# m_dist = pdist(distance_matrix, lambda u, v: geopy.distance.distance(u, v).kilometers)

# print(m_dist)

dist = pd.DataFrame(distances_dataset(dataset.values,
lambda u, v: geopy.distance.distance(u, v).kilometers), index=dataset.index, columns=dataset.index)
dist = pd.DataFrame(distances_dataset(dataset_sample.values,
lambda u, v: geopy.distance.distance(u, v).kilometers), index=dataset_sample.index, columns=dataset_sample.index)
print(dist)
# print(dist.iloc[0,:])

hamiltonian = hamiltonian_from_distances(dist)
timesteps = 3
iterations = 500
n_qubits = 7 #10
n_qubits = 16 #10
betas = [round(val,1) for val in np.random.rand(timesteps*n_qubits)]
gammas_singles = [round(val,1) for val in np.random.rand(0)]
gammas_pairs = [round(val,1) for val in np.random.rand(timesteps*len(hamiltonian))]
Expand Down Expand Up @@ -79,7 +91,7 @@ def run_qaoa(hamiltonian, params, timesteps, max_iters, init_state=None):
wave_func = cost_function.get_wavefunction(params.raw())
lowest = max_probability_bitstring(wave_func.probabilities())

true_clusters = [1 if val else 0 for val in labels]
true_clusters = [1 if val else 0 for val in bools]
acc = cluster_accuracy(lowest,true_clusters)

print(res)
File renamed without changes.
Loading

0 comments on commit 53b468a

Please sign in to comment.