-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdata_normalization.py
36 lines (26 loc) · 1.13 KB
/
data_normalization.py
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
import pandas as pd
from sklearn.preprocessing import StandardScaler
from sklearn.preprocessing import scale
from imblearn.over_sampling import SMOTE
dataset = pd.read_excel('dataset.xlsx')
# Нормализовали данные
scaler = StandardScaler(copy=True, with_mean=True, with_std=True)
scaler.fit(dataset.drop('ИБС', axis=1))
scaled_features = scaler.transform(dataset.drop('ИБС', axis=1))
scaled_data = pd.DataFrame(scaled_features, columns = dataset.drop('ИБС', axis=1).columns)
#x = scaled_data
#y = dataset['ИБС']
x = dataset.drop('ИБС', axis=1)
y = dataset['ИБС']
# Уравняли количество строк с разными классами
sm = SMOTE(random_state=42, k_neighbors=4)
x, y = sm.fit_resample(x, y)
print("Кол-во строк каждого класса:")
print(dataset['ИБС'].value_counts())
print("\nНормализованный набор данных.")
print(x)
###
# Нормализация данных.
# Кол-во строк где ИБС = 1 в два раза меньше где ИБС = 0,
# с помощью SMOTE уравнял количество строк.
###