神经网络做分类所遇见的一些函数

1  encoder = OneHotEncoder()

独热编码问题,例如一个长方体,具有三个属性,长宽高,长1宽2高3,如果编码为[1,2,3]及为标签编码,如果为[100][,010][001]及为独热编码,每一个单元中只能有一个1其余全是0.

2 Y = encoder.fit_transform(Y.reshape(Y.shape[0], 1))

fit(): Method calculates the parameters μ and σ and saves them as internal objects.
解释:简单来说,就是求得训练集X的均值,方差,最大值,最小值,这些训练集X固有的属性。

transform(): Method using these calculated parameters apply the transformation to a particular dataset.
解释:在fit的基础上,进行标准化,降维,归一化等操作(看具体用的是哪个工具,如PCA,StandardScaler等)。

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

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

3  Y = encoder.fit_transform(Y.reshape(Y.shape[0], 1))

Y.shape(),结果为(参数,)形式

reshape()函数用于在不更改数据的情况下为数组赋予新形状。

形式:numpy.reshape(a, newshape, order=‘C’)

import numpy as np
import pandas as pd
c=np.array([[1,2,3],[4,5,6]])
c=c.reshape(2,-2)
pritn(c)
#结果:([1,2,3][4,5,6])

c=c.reshape(3,2)
pritn(c)
#结果:([1,2][3,4],[5,6])

如果其中一个是负数,会自动按照另一个参数进行匹配,比如c=c.reshape(2,-2),变成2行的数组,但是总共只有6个数据,自然只能形成2行3列的矩阵数据。

4 Y = Y.toarray().T

toarray()标志转换,将列表转换为数组

A.T:将矩阵A转置

5 Y = Y.astype('uint8')

astype实现变量类型转换.

Python中与数据类型相关函数及属性有如下三个:type/dtype/astype

type()    返回参数的数据类型    

dtype    返回数组中元素的数据类型    

astype()    对数据类型进行转换    

你可以使用 .astype() 方法在不同的数值类型之间相互转换。a.astype(int).dtype # 将 a 的数值类型从 float64 转换为 int,

在 Python 内建对象中,数组有三种形式:

  • 列表:[1, 2, 3]

  • 元组:(1, 2, 3, 4, 5)

  • 字典:{A:1, B:2}

uint8:表示8进制无符号数

int是带符号的,表示范围是:-2147483648到2147483648,即-2^31到2^31次方。

uint则是不带符号的,表示范围是:2^32即0到4294967295。

uint可以使用十进制,二进制,十六进制。

6  start_time = datetime.datetime.now()

utcnow():读取的时间一直都是系统的“世界标准时间”
now():读取的时间是系统的本地时间

7 z1 = np.dot(w1, X) + b1

dot函数是np中的矩阵乘法,假设 a,b为矩阵,a.dot(b) 等价于 np.dot(a,b) 。

8 Y = iris['species'].values

返回一个字典中所有的值

 a1 = np.tanh(z1)

numpy.tanh(x [,out])= ufunc'tanh'):此数学函数可帮助用户计算所有x(作为数组元素)的双曲正切值。

就是使用双曲正切作为激活函数使用

常见的有:

1 sigmoid

2 tanh

 3  Relu

4. Leaky Relu激活函数

5. P-Relu(Parametric ReLU)激活函数

 6. Elu激活函数

7. Gelu激活函数 

 8. Swich激活函数 

9. Selu激活函数 

10   logprobs = np.multiply(np.log(a2), Y) + np.multiply((1 - Y), np.log(1 - a2))

由于multiply是ufunc函数,ufunc函数会对这两个数组的对应元素进行计算,因此它要求这两个数组有相同的大小(shape相同),相同则是计算内积。如果shape不同的话,会将小规格的矩阵延展成与另一矩阵一样大小,再求两者内积。(矩阵对应位置相乘,矩阵尺寸同的话,会把小的扩展成一样的尺寸)

np.log()  默认是以e为底的,

np.log10()  以10为底

11 代价函数(损失函数),交叉熵

交叉熵是对「出乎意料」(译者注:原文使用suprise)的度量。神经元的目标是去计算函数y, 且y=y(x)。但是我们让它取而代之计算函数a, 且a=a(x)。假设我们把a当作y等于1的概率,1−a是y等于0的概率。那么,交叉熵衡量的是我们在知道y的真实值时的平均「出乎意料」程度。当输出是我们期望的值,我们的「出乎意料」程度比较低;当输出不是我们期望的,我们的「出乎意料」程度就比较高。

12 output = output.flatten()

flatten()是对多维数据的降维函数。
flatten(),默认缺省参数为0,也就是说flatten()和flatte(0)效果一样。
矩阵

a=([1,2,3][4,5,6][7,8,9])

b=a.flatten()

b=(1,2,3,4,5,6,7,8,9)

b=a.flatten(1)

b=([1,2,3],[4,5,6,7,8,9])

b=a.flatten(2)

b=([1,2,3][4,5,6][7,8,9])

13 real = np.column_stack((x_test.T, y))

将2个矩阵按列合并

np.cow_stack(x1,x2)是按照行合并

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值