航海家的故事
sklearn是很强⼤的机器学习的库,传统的机器学习任务从开始到建模的⼀般流程是:获取数据 -> 数据预处理 -> 训练建模 -> 模型评估 ->预测,分类。最开始的是获取数据,sklearn已经给出很多的数据集, 当然也可以通过sklearn⾃⼰创建。
Sklearn⾥给出的数据集如下:
这⾥具体怎么调⽤和创建可以参考博客:
这⾥主要说的是在sklearn怎么划分出训练集和测试集,前⾯说过 训练集和测试集不能有交集,最直接的⽅法是从⼀堆的数据集中直接 划分出两部分,⼀部分是训练集, 另⼀部分就是测试集。sklearn中给出了 相应的函数。
X_train,X_test, y_train, y_test = ain_test_split(train_data,train_target,test_size=0.4, random_state=0)
我们先解释括号⾥的参数都代表啥。
train_data:所要划分的样本特征集
train_target:所要划分的样本结果
test_size:样本占⽐,如果是整数的话就是样本的数量。这⾥的0.4代表的就是划分出40%的样本作为测试集。
姚笛 文章random_state:是随机数的种⼦。陈奕迅爆蛋
随机数种⼦:其实就是该组随机数的编号,在需要重复试验的时候,保证得到⼀组⼀样的随机数。⽐如你每次都填1,其他参数⼀样的情况下你得到的随机数组是⼀样的。但填0或不填,每次都会不⼀样。
随机数的产⽣取决于种⼦,随机数和种⼦之间的关系遵从以下两个规则:
种⼦不同,产⽣不同的随机数;种⼦相同,即使实例不同也产⽣相同的随机数。
看到这⾥有⼀个随机数种⼦,啥是 随机数种⼦, 在这⾥有啥⽤?于是 资料看了⼀下机器产⽣随机数的原理。
明年今日 歌词⽹址:
不管⽤什么⽅法实现随机数发⽣器,都必须给它提供⼀个名为“种⼦”的初始值。⽽且这个值最好是随机的,或者⾄少这个值是伪随机的。“种⼦”的值通常是⽤快速计数寄存器或移位寄存器来⽣成的。 随机函数产⽣的是⼀种伪随机数,它实际是⼀种序列发⽣器,有固定的算法,只有当种⼦不同时,序列才不同。因此,⽤通俗的话说就是编程语⾔⾥的随机数是通过算法⽣成 的,先有⼀个随机种⼦,把⼀些列算法应⽤于这个种⼦,随机数就出来了,因此在程序中指定种⼦值,每次都不变,那么程序每次
产⽣的随机数就都是⼀样的,在⼀些程序中,这样反⽽起到了控制变量的作⽤。养殖虾
最后需要说明的是train_test_split函数在sklearn的⾼版本中不属于cross_validation类了,属于del_selection,调⽤的形式应该是ain_test_split。谭凯琪
或者是:
del_selection import train_test_split
train= loan_data.iloc[0: 55596, :]
test= loan_data.iloc[55596:, :]
# 避免过拟合,采⽤交叉验证,验证集占训练集20%,固定随机种⼦(random_state)
train_X,test_X, train_y, test_y = train_test_split(train,
target,
test_size = 0.2,
random_state = 0)
发布评论