Skip to content

Commit e68a54e

Browse files
committed
add console output
1 parent fd9d869 commit e68a54e

File tree

3 files changed

+38
-19
lines changed

3 files changed

+38
-19
lines changed

jupyter-notebook/SVM_Notebook.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -17794,7 +17794,7 @@ <h4 id="5.1:-Build-a-Support-Vector-Machine-model-using-a-linear-kernel"><strong
1779417794
<div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[42]:</div>
1779517795
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
1779617796
<div class="CodeMirror cm-s-jupyter">
17797-
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">svm</span> <span class="o">=</span> <span class="n">SVC</span><span class="p">(</span><span class="n">kernel</span><span class="o">=</span><span class="s1">'linear'</span><span class="p">,</span> <span class="n">probability</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> <span class="c1"># Linear kernal or linear decision boundary</span>
17797+
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">svm</span> <span class="o">=</span> <span class="n">SVC</span><span class="p">(</span><span class="n">kernel</span><span class="o">=</span><span class="s1">'linear'</span><span class="p">,</span> <span class="n">probability</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> <span class="c1"># Linear Kernel or linear decision boundary</span>
1779817798
<span class="n">model</span> <span class="o">=</span> <span class="n">svm</span><span class="o">.</span><span class="n">fit</span><span class="p">(</span><span class="n">X</span><span class="o">=</span> <span class="n">X_train_scaled</span><span class="p">,</span> <span class="n">y</span> <span class="o">=</span> <span class="n">y_train</span><span class="p">)</span>
1779917799
</pre></div>
1780017800

jupyter-notebook/SVM_Notebook.ipynb

+1-1
Original file line numberDiff line numberDiff line change
@@ -2820,7 +2820,7 @@
28202820
},
28212821
"outputs": [],
28222822
"source": [
2823-
"svm = SVC(kernel='linear', probability=True) # Linear kernal or linear decision boundary\n",
2823+
"svm = SVC(kernel='linear', probability=True) # Linear Kernel or linear decision boundary\n",
28242824
"model = svm.fit(X= X_train_scaled, y = y_train)\n"
28252825
]
28262826
},

support-vector-machine.py

+36-17
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
from sklearn.model_selection import train_test_split
2121
from sklearn.metrics import confusion_matrix, classification_report
2222
from sklearn.preprocessing import MinMaxScaler
23+
2324
# module initializations
2425
sns.set()
2526
HERE = os.path.abspath(os.path.dirname(__file__))
@@ -59,6 +60,7 @@ def prepare_data():
5960
- split dependent / independent variables
6061
- split training / test data sets
6162
"""
63+
print("Preparing data sets")
6264
original_db = pd.read_csv(os.path.join(HERE, "data", "reservations-db.csv"))
6365

6466
# need to be careful to only work with a **COPY** of the original
@@ -86,71 +88,88 @@ def prepare_data():
8688
return train_test_split(x, y, test_size=0.30, stratify=y, random_state=1)
8789

8890

89-
def linear_kernal():
91+
def linear_Kernel():
9092
"""
9193
- create training and test data sets
9294
- create a Logistic Regression model
9395
- train the model
9496
- generate confusion matrix and f-score for the training set
9597
- generate confusion matrix and f-score for the test set
9698
"""
99+
print("Linear Kernel")
97100
x_train, x_test, y_train, y_test = prepare_data()
98101

99-
scaling = MinMaxScaler(feature_range=(-1,1)).fit(x_train)
102+
print("- scaling")
103+
scaling = MinMaxScaler(feature_range=(-1, 1)).fit(x_train)
100104
x_train_scaled = scaling.transform(x_train)
101105
x_test_scaled = scaling.transform(x_test)
102106

103-
# Linear kernal or linear decision boundary
104-
svm = SVC(kernel='linear', probability=True)
105-
model = svm.fit(X= x_train_scaled, y = y_train)
107+
# Linear Kernel or linear decision boundary
108+
print("- training")
109+
svm = SVC(kernel="linear", probability=True)
110+
model = svm.fit(X=x_train_scaled, y=y_train)
106111

112+
print("- modeling on training data")
107113
y_pred_train_svm = model.predict(x_train_scaled)
108114
metrics_score(y_train, y_pred_train_svm)
109115

116+
print("- modeling on test data")
110117
y_pred_test_svm = model.predict(x_test_scaled)
111118
metrics_score(y_test, y_pred_test_svm)
112119

113120
# Set the optimal threshold (refer to the Jupyter Notebook to see how we arrived at 42)
114-
optimal_threshold_svm=0.40
121+
optimal_threshold_svm = 0.40
115122

123+
print("- remodeling on training data")
116124
y_pred_train_svm = model.predict_proba(x_train_scaled)
117-
metrics_score(y_train, y_pred_train_svm[:,1]>optimal_threshold_svm)
125+
metrics_score(y_train, y_pred_train_svm[:, 1] > optimal_threshold_svm)
118126

127+
print("- remodeling on test data")
119128
y_pred_test = model.predict_proba(x_test_scaled)
120-
metrics_score(y_test, y_pred_test[:,1]>optimal_threshold_svm)
129+
metrics_score(y_test, y_pred_test[:, 1] > optimal_threshold_svm)
130+
121131

122-
def rbf_kernal():
132+
def rbf_Kernel():
123133
"""
124134
- create training and test data sets
125135
- create a Logistic Regression model
126136
- train the model
127137
- generate confusion matrix and f-score for the training set
128138
- generate confusion matrix and f-score for the test set
129139
"""
140+
print("RBF Kernel")
130141
x_train, x_test, y_train, y_test = prepare_data()
131142

132-
scaling = MinMaxScaler(feature_range=(-1,1)).fit(x_train)
143+
print("- scaling")
144+
scaling = MinMaxScaler(feature_range=(-1, 1)).fit(x_train)
133145
x_train_scaled = scaling.transform(x_train)
134146
x_test_scaled = scaling.transform(x_test)
135147

136-
# Linear kernal or linear decision boundary
137-
svm_rbf=SVC(kernel='rbf',probability=True)
138-
model = svm_rbf.fit(x_train_scaled,y_train)
148+
# Linear Kernel or linear decision boundary
149+
print("- training")
150+
svm_rbf = SVC(kernel="rbf", probability=True)
151+
model = svm_rbf.fit(x_train_scaled, y_train)
139152

153+
print("- modeling on training data")
140154
y_pred_train_svm = model.predict(x_train_scaled)
141155
metrics_score(y_train, y_pred_train_svm)
142156

157+
print("- modeling on test data")
143158
y_pred_test_svm = model.predict(x_test_scaled)
144159
metrics_score(y_test, y_pred_test_svm)
145160

146161
# Set the optimal threshold (refer to the Jupyter Notebook to see how we arrived at 42)
147-
optimal_threshold_svm=0.41
162+
optimal_threshold_svm = 0.41
148163

164+
print("- remodeling on training data")
149165
y_pred_train_svm = model.predict_proba(x_train_scaled)
150-
metrics_score(y_train, y_pred_train_svm[:,1]>optimal_threshold_svm)
166+
metrics_score(y_train, y_pred_train_svm[:, 1] > optimal_threshold_svm)
151167

168+
print("- remodeling on test data")
152169
y_pred_test = model.predict_proba(x_test_scaled)
153-
metrics_score(y_test, y_pred_test[:,1]>optimal_threshold_svm)
170+
metrics_score(y_test, y_pred_test[:, 1] > optimal_threshold_svm)
171+
154172

155173
if __name__ == "__main__":
156-
linear_kernal()
174+
linear_Kernel()
175+
rbf_Kernel()

0 commit comments

Comments
 (0)