-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsmote.py
More file actions
71 lines (57 loc) · 2.41 KB
/
Copy pathsmote.py
File metadata and controls
71 lines (57 loc) · 2.41 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
import pandas as pd
from imblearn.over_sampling import SMOTE
# WARNING !!! In order to use SMOTE the dataset must not contain missing values #
# FILES
NAME_OF_DATASET_FILE = 'C:\\Users\\Leona\\PycharmProjects\\LABS\\project\\aps_training_average.csv'
NAME_OF_SMOTE_OVER_SAMPLING_FILE = 'smote_over_sampling_aps_training.csv'
# CLASS ATTRIBUTE
INDEX_OF_CLASS_ATTRIBUTE = 0
NAME_OF_CLASS_ATTRIBUTE = 'class'
# Read file
df_train = pd.read_csv(NAME_OF_DATASET_FILE, delimiter=',')
# Smote over sampling
X = df_train.iloc[:, df_train.columns != NAME_OF_CLASS_ATTRIBUTE].values
Y = df_train.iloc[:, INDEX_OF_CLASS_ATTRIBUTE]
smote = SMOTE(ratio='minority')
X_res, Y_res = smote.fit_sample(X, Y)
result = pd.concat([pd.Series(Y_res), pd.DataFrame(data=X_res)], axis=1)
result.columns = df_train.columns
# Write to files
result.to_csv(NAME_OF_SMOTE_OVER_SAMPLING_FILE, encoding='utf-8', index=False)
print('done')
# COL
# Read file
green = pd.read_csv('C:\\Users\\Leona\\PycharmProjects\\LABS\\project\\col\\green.csv', delimiter=',')
hinselmann = pd.read_csv('C:\\Users\\Leona\\PycharmProjects\\LABS\\project\\col\\hinselmann.csv', delimiter=',')
schiller = pd.read_csv('C:\\Users\\Leona\\PycharmProjects\\LABS\\project\\col\\schiller.csv', delimiter=',')
df_train = pd.concat([green, hinselmann, schiller])
# Smote over sampling
X = df_train.iloc[:, 0:len(df_train.columns)-7].values
Y = df_train.iloc[:, len(df_train.columns)-1]
smote = SMOTE(ratio='minority')
X_res, Y_res = smote.fit_sample(X, Y)
result = pd.concat([pd.Series(Y_res), pd.DataFrame(data=X_res)], axis=1)
final_columns = []
final_columns.append('consensus')
i=0
for column in df_train.columns:
if i == len(df_train.columns)-7:
break
i+=1
final_columns.append(column)
result.columns = final_columns
# Write to files
result.to_csv('smote_over_sampling_col.csv', encoding='utf-8', index=False)
print('done')
# Read file
df_train = pd.read_csv('C:\\Users\\Leona\\PycharmProjects\\LABS\\project\\col_wihtout_outliers.csv', delimiter=',')
# Smote over sampling
X = df_train.iloc[:, 0:len(df_train.columns)-1].values
Y = df_train.iloc[:, len(df_train.columns)-1]
smote = SMOTE(ratio='minority')
X_res, Y_res = smote.fit_sample(X, Y)
result = pd.concat([pd.DataFrame(data=X_res), pd.Series(Y_res)], axis=1)
result.columns = df_train.columns
# Write to files
result.to_csv('smote_over_sampling_col_without_outliers.csv', encoding='utf-8', index=False)
print('done')