Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 2

SMOTE Samples Calculation

random_state = 1
y_type = 1(churn)
nn_data = X_class[y==1]
nn_num = [[2, 3, 1, 5, 4],
[2, 3, 0, 5, 4],
[3, 0, 1, 5, 4],
[2, 0, 1, 5, 4],
[2, 0, 3, 1, 5],
[2, 0, 3, 1, 4]]

n_samples = 38 (no_y=0 data – no_y=1 data)=44-6

step_size=1.0

Samples = random(0,len(nn_num),38)
Samples = [ 5 11 12 8 9 11 5 15 0 16 1 12 7 13 28 6 25 18 20 5 18 20 11 28
10 28 29 14 18 4 23 23 9 17 23 0 22 13]

steps = 1.0 * random_state.uniform(0,38)


1
uniform(a,b)= b−a

steps [0.2609, 0.231, 0.5334, 0.9499, 0.493, 0.5406, 0.7654, 0.0453, 0.139,
0.7924, 0.0298, 0.8831,
0.5407, 0.4479, 0.8921, 0.3775, 0.5384, 0.6522, 0.3612, 0.571, 0.6378, 0.1263,
0.6902, 0.6477,
0.3539, 0.7632, 0.3565, 0.7527, 0.8813, 0.0116, 0.4981, 0.0737, 0.7869, 0.064,
0.3553, 0.9418,
0.3798, 0.7629]

rows = floor_divide(samples, nn_num.shape[1])

rows = [1 2 2 1 1 2 1 3 0 3 0 2 1 2 5 1 5 3 4 1 3 4 2 5 2 5 5 2 3 0 4 4 1 3 4 0 4 2]

cols = mod(samples, nn_num.shape[1])


[0 1 2 3 4 1 0 0 0 1 1 2 2 3 3 1 0 3 0 0 3 0 1 3 0 3 4 4 3 4 3 3 4 2 3 0 2
3]

For i in samples,Rows,Cols,Steps:
X_new[i] = nn_data[row] - step * (nn_data[row] - nn_data[nn_num[row,
col]])
y_new = np.array([y_type] * len(X_new))

X-new = -0.54403 – 0.2609 *(-0.54033-nn_data[nn_num[1,0])


= -0.54033 – 0.2609 (-0.54033-nn_data[2])
= -0.54033 – 0.2609 (-0.54033 – 0.4669)
= -0.2775
X_new&y_new

You might also like