Skip to content

Commit dbb8ad5

Browse files
committed
Made model using keras :P
1 parent 03bb435 commit dbb8ad5

File tree

4 files changed

+1415
-0
lines changed

4 files changed

+1415
-0
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
.ipynb_checkpoints
Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
import pandas as pd
2+
import numpy as np
3+
import matplotlib.pyplot as plt
4+
import keras
5+
from keras.models import Sequential
6+
from keras.layers.core import Dense, Dropout, Activation
7+
from keras.utils import np_utils
8+
9+
data = pd.read_csv('student_data.csv')
10+
11+
def plot_points(data):
12+
X = np.array(data[['gre', 'gpa']])
13+
y = np.array(data['admit'])
14+
admit = X[np.argwhere(y==1)]
15+
rejected = X[np.argwhere(y==0)]
16+
plt.scatter([s[0][0] for s in rejected], [s[0][1] for s in rejected], color = 'red')
17+
plt.scatter([s[0][0] for s in admit], [s[0][1] for s in admit], color = 'cyan')
18+
19+
# Plotting the points
20+
plot_points(data)
21+
# plt.show()
22+
23+
#separating the ranks
24+
data_rank1 = data[data["rank"]==1]
25+
data_rank2 = data[data["rank"]==2]
26+
data_rank3 = data[data["rank"]==3]
27+
data_rank4 = data[data["rank"]==4]
28+
29+
plot_points(data_rank1)
30+
plt.title("Rank 1")
31+
# plt.show()
32+
plot_points(data_rank2)
33+
plt.title("Rank 2")
34+
# plt.show()
35+
plot_points(data_rank3)
36+
plt.title("Rank 3")
37+
# plt.show()
38+
plot_points(data_rank4)
39+
plt.title("Rank 4")
40+
# plt.show()
41+
42+
# Make dummy variables for rank
43+
one_hot_data = pd.concat([data, pd.get_dummies(data['rank'], prefix='rank')], axis=1)
44+
45+
one_hot_data = one_hot_data.drop('rank', axis=1)
46+
47+
processed_data = one_hot_data[:]
48+
processed_data['gre'] = processed_data['gre']/800
49+
processed_data['gpa'] = processed_data['gre']/4.0
50+
processed_data[:10]
51+
52+
sample = np.random.choice(processed_data.index, size=int(len(processed_data) * 0.9), replace=False)
53+
train_data, test_data = processed_data.iloc[sample], processed_data.drop(sample)
54+
55+
print("Number of training samples is", len(train_data))
56+
print("Number of testing samples is", len(test_data))
57+
print(train_data[:10])
58+
print(test_data[:10])
59+
60+
features = np.array(train_data.drop('admit', axis=1))
61+
targets = np.array(keras.utils.to_categorical(train_data['admit'], 2))
62+
features_test = np.array(test_data.drop('admit', axis=1))
63+
targets_test = np.array(keras.utils.to_categorical(test_data['admit'], 2))
64+
65+
print(features[:10])
66+
print(targets[:10])
67+
68+
69+
model = Sequential()
70+
model.add(Dense(128, activation='sigmoid', input_shape=(6,)))
71+
model.add(Dropout(.2))
72+
model.add(Dense(64, activation='sigmoid'))
73+
model.add(Dropout(.1))
74+
model.add(Dense(2, activation='sigmoid'))
75+
76+
model.compile(loss = 'categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
77+
model.summary()
78+
79+
model.fit(features, targets, epochs=200, batch_size=100, verbose=0)
80+
81+
score = model.evaluate(features, targets)
82+
print("\n Training Accuracy:", score[1])
83+
score = model.evaluate(features_test, targets_test)
84+
print("\n Testing Accuracy:", score[1])

student-admissions-keras/StudentAdmissionsKeras.ipynb

Lines changed: 929 additions & 0 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)