机器学习过程中遇到的函数笔记

注:文中笔记有些是复制其它作者的内容整理而来。

1.在pycharm中查看内建函数源码

鼠标放在内建函数上,Ctrl+B,看源码

2.sklearn的train_test_split的random_state

我们在使用sklearn的train_test_split函数随机划分数据集生成training set 于test set时,在函数train_test_split中有一个参数为random_state。

random_state:随机数种子——其实就是该组随机数的编号,在需要重复试验的时候,保证得到一组一样的随机数。比如每次都为1,其他参数一样的情况下你得到的随机数组是一样的。当为None时,产生的随机数组也会是随机的。

随机数的产生取决于种子,随机数和种子之间的关系遵从以下两个规则:种子不同,产生不同的随机数;种子相同,即使实例不同也产生相同的随机数。

下面我们通俗的解释一下就是:

参数test_size:如果是浮点数,在0-1之间,表示test set的样本占比;如果是整数的话就表示test set样本数量。

test_size只是确定training set于test set的各自所占比例或者数量,并没有确定数据的划分规则。比如我们有数据集[1,2,3,4,5,6,7,8,9],我们确定test_size=3,那问题是我们应该取哪三个数作为test set呢,这时候就应该使用random_state来确定我们的划分规则,假设我们取random_state=1,它按一定的规则去取出我们的数据,当我们random_state=2时,它又换成另一种规则去取我们的数据,random_state的取值范围为0-2^32。当random_state=None时,可以理解为随机分配一个整数给random_state,这样就导致每次运行的结果都可能不同。

其他函数中的random_state参数功能是类似的。

3.python enumerate用法

  • 对于一个可迭代的(iterable)/可遍历的对象(如列表、字符串),enumerate将其组成一个索引序列,利用它可以同时获得索引和值
  • enumerate多用于在for循环中得到计数

list1 = ["这", "是", "一个", "测试"]
for index, item in enumerate(list1):
    print index, item
>>>
0 这
1 是
2 一个
3 测试

 enumerate还可以接收第二个参数,用于指定索引起始值,如:

list1 = ["这", "是", "一个", "测试"]
for index, item in enumerate(list1, 1):
    print index, item
>>>
1 这
2 是
3 一个
4 测试

4. fit,transform,fit_transform 

fit(): 简单来说,就是求得训练集X的均值,方差,最大值,最小值,这些训练集X固有的属性。

transform(): 在fit的基础上,进行标准化,降维,归一化等操作(看具体用的是哪个工具,如PCA,StandardScaler等)。

fit_transform():fit_transform是fit和transform的组合,既包括了训练又包含了转换。
transform()和fit_transform()二者的功能都是对数据进行某种统一处理(比如标准化~N(0,1),将数据缩放(映射)到某个固定区间,归一化,正则化等)

fit_transform(trainData)对部分数据先拟合fit,找到该part的整体指标,如均值、方差、最大值最小值等等(根据具体转换的目的),然后对该trainData进行转换transform,从而实现数据的标准化、归一化等等。

根据对之前部分trainData进行fit的整体指标,对剩余的数据(testData)使用同样的均值、方差、最大最小值等指标进行转换transform(testData),从而保证train、test处理方式相同。所以,一般都是这么用:

from sklearn.preprocessing import StandardScaler
sc = StandardScaler()
sc.fit_tranform(X_train)
sc.tranform(X_test)
 

5.set_printoptions() 设置打印显示方式

np.set_printoptions(precision=None, threshold=None, edgeitems=None,
               linewidth=None, suppress=None, nanstr=None, infstr=None,
               formatter=None, sign=None, floatmode=None, --kwarg) #设置打印选项

参数

precision:int or None浮点输出的精度位数(默认8)# 如floatmode不是fixed,可能是None

threshold:int触发汇总的数组元素总数而不是完整的repr(默认1000)
edgeitems:int在开头和结尾的摘要中的数组项数 每个维度(默认为3)
linewidth:int每行用于插入的字符数# 换行符(默认为75)
suppress : bool,科学记数法启用
    # True用固定点打印浮点数符号,当前精度中的数字等于零将打印为零。
    # False用科学记数法;最小数绝对值是<1e-4或比率最大绝对值> 1e3。默认值False
nanstr:str浮点非字母数字的字符串表示形式(默认为nan)
infstr:str浮点无穷大字符串表示形式(默认inf)
sign:string,' - ','+'或'',控制浮点类型符号的打印。
    # '+'打印正值标志。''打印空格。' - '省略正值符号,默认

6.np.eye()生成对角阵

numpy.eye(N,M=None, k=0, dtype=<type 'float'>)

关注第一个第三个参数就行了

第一个参数:输出方阵(行数=列数)的规模,即行数或列数

第三个参数:默认情况下输出的是对角线全“1”,其余全“0”的方阵,如果k为正整数,则在右上方第k条对角线全“1”其余全“0”,k为负整数则在左下方第k条对角线全“1”其余全“0”。

7.numpy的ones_like函数

返回一个用1填充的跟输入 形状和类型 一致的数组。 

>>> x = np.arange(6)
>>> x = x.reshape((2, 3))
>>> x
array([[0, 1, 2],
       [3, 4, 5]])
>>> np.ones_like(x)
array([[1, 1, 1],
       [1, 1, 1]])

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值