2019-3-1
#导入相关库
import pandas as pd
from sklearn.model_selection import train_test_split
#读取数据
data=pd.read_csv('train_set.csv')
#查看前5条数据
data.head()
id | article | word_seg | class | |
---|---|---|---|---|
0 | 0 | 7368 1252069 365865 755561 1044285 129532 1053... | 816903 597526 520477 1179558 1033823 758724 63... | 14 |
1 | 1 | 581131 165432 7368 957317 1197553 570900 33659... | 90540 816903 441039 816903 569138 816903 10343... | 3 |
2 | 2 | 7368 87936 40494 490286 856005 641588 145611 1... | 816903 1012629 957974 1033823 328210 947200 65... | 12 |
3 | 3 | 299237 760651 299237 887082 159592 556634 7489... | 563568 1239563 680125 780219 782805 1033823 19... | 13 |
4 | 4 | 7368 7368 7368 865510 7368 396966 995243 37685... | 816903 816903 816903 139132 816903 312320 1103... | 12 |
#查看数据总数
len(data)
102277
#查看有多少各类别,以及每个类别有多少条数
data['class'].value_counts().sort_index()
1 5375
2 2901
3 8313
4 3824
5 2369
6 6888
7 3038
8 6972
9 7675
10 4963
11 3571
12 5326
13 7907
14 6740
15 7511
16 3220
17 3094
18 7066
19 5524
Name: class, dtype: int64
发现:
训练数据集有102277条数据,19个类别,19个类别并不是都一样多的,最少的是类别5(2369条数据),最多的是(8313条数据),类别不平衡。
'''
划分开特征和标签
'''
x_train = data.drop('class', 1)
y_train = data['class']
'''
train_test_split将训练数据集分为2分,一份占0.3,用于做验证集,另外的0.7用于作为训练集
'''
X_train, X_val, y_train, y_val = train_test_split(x_train, y_train, test_size=0.3, random_state=2019)
'''
查看切分之后的结果
'''
print(len(X_train))
print(len(X_val))
71593
30684
X_train.head()
id | article | word_seg | |
---|---|---|---|
96040 | 96040 | 556634 837240 359838 658824 873355 856005 1177... | 3849 460600 193705 1033823 1226134 218823 5542... |
91212 | 91212 | 1058423 887082 1044285 891719 697742 316564 56... | 539278 520477 1070929 477703 184574 711974 878... |
28207 | 28207 | 598093 968221 316709 986218 7368 7368 144506 1... | 91625 533560 816903 816903 208199 203284 81690... |
88425 | 88425 | 370832 370832 370832 7368 478062 569999 114886... | 629837 629837 629837 816903 1055804 1033823 83... |
57653 | 57653 | 1136931 441856 477606 348926 1009224 89539 466... | 876555 1103075 990092 1134471 66495 520477 859... |
#有16个类别
len(data['class'].unique())
19
思考:
切分的时候应该考虑按照每个类别的比例关系进行划分,这样划分出来的数据分布才更合适