-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdata.py
61 lines (50 loc) · 1.94 KB
/
data.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
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
from torch.utils.data import DataLoader, Dataset
from utils import *
p_home_own = {
'RENT' : 0,
'OWN' : 1,
'MORTGAGE' : 2,
'OTHER' : 3
}
intent = {
'EDUCATION' : 0,
'MEDICAL' : 1,
'PERSONAL' : 2,
'VENTURE' : 3,
'DEBTCONSOLIDATION' : 4,
'HOMEIMPROVEMENT' : 5
}
grade = {
'A' : 0,
'B' : 1,
'C' : 2,
'D' : 3,
'E' : 4,
'F' : 5,
'G' : 6
}
class loan_data(Dataset) :
def __init__(self, data_path) :
super().__init__()
dataframe = pd.read_csv(data_path)
self.feature = torch.from_numpy(dataframe.loc[:, ~dataframe.columns.isin(['id',
'person_home_ownership',
'loan_grade','loan_intent',
'cb_person_cred_hist_length',
'cb_person_default_on_file',
'loan_status'])].values)
self.person_home_own = dataframe.loc[:, 'person_home_ownership'].values
self.person_home_own = str_key(self.person_home_own, p_home_own).reshape
self.loan_intent = dataframe.loc[:, 'loan_intent'].values
self.loan_intent = str_key(self.loan_intent, intent)
self.loan_grade = dataframe.loc[:, 'loan_grade'].values
self.loan_grade = str_key(self.loan_grade, grade)
self.feature = torch.cat((self.feature, self.person_home_own, self.loan_intent, self.loan_grade), dim=1)
self.label = dataframe.loc[:, 'loan_status'].values
def __len__(self) :
return len(self.feature)
def __getitem__(self, index):
return self.feature[index], torch.tensor([self.label[index]]).float()
train_data = loan_data(datapath)
train_dataload = DataLoader(train_data, shuffle=True, batch_size=1)
print(train_dataload.dataset[:10])