机器学习案例过程中经常忘记的函数

numpy取随机数的方式

常用的其实就只有4个,还都是0-1之间,分别是 rand() randn() randint() random()

第一个表示的是0-1之间取多少个均匀分布,第二个是从标准正态分布中抽多少个,第三个抽到的结果是整数,第四个是单纯的随机数

如果要得到0-5的随机数呢?

——将结果 * 5

关于sklearn中接口对于数据的要求

所有接口中要求输入X_train和X_test的部分,输入的特征矩阵必须至少是一个二维矩阵。 sklearn不接受任何一维矩阵作为特征矩阵被输入

思考:sklearn中的接口所使用的数据是否一定得是表格?

不一定的,数组也可以使用,但是要注意,数组也必须是2维以上的。

如果数据本身是1维的,该如何上升一个维度呢?

x = x[:, np.newaxis] # 给指定的行或者列升维,不过要注意赋值给原本的x
y = y[:, np.newaxis]

python自带的sorted和np的np.sort 有什么区别?在建模时会有什么影响?

python中的sorted在将 数组 排序以后,返回的结果类型 会变成列表!

而np中的sorted在将 数组排序后,返回的结果类型 依旧是 数组

而且要注意,np中的sort没有ed

x = np.sort(np.random.rand(100) * 5)
type(x) # 返回numpy.ndarray


x = sorted(np.random.rand(100) * 5)
type(x) # 返回list

# 对于list类型的数据,是无法画图的
plt.figure()
plt.scatter(x, y, color = 'black', label = 'sin')
plt.legend()
plt.show()

数据预处理阶段的顺序与注意事项:

1.数据预处理的方式应当为:

剔除掉无关特征与缺失值过多的特征---->进行缺失值处理,要么进行缺失值填补,要么删除掉有缺失值的样本---->将数据特征进行变化,比如 性别这一特征要转化为数值类型的数值

2.应当在数据预处理整个过程结束之后,再 分别提取出特征矩阵和标签矩阵,而不要在一开始就区分特征矩阵和标签矩阵。

原因很简单:因为原数据集中,特征矩阵是需要进行数据预处理的,有缺失值的存在。如果在预处理之前就区分了特征矩阵和标签矩阵,那之后就没法删除掉标签矩阵中对应的数值了

表格中筛选指定的列:(方法常忘记)

# 数据处理完毕,提取特征矩阵和标签矩阵
feature = data.loc[:,data.columns != 'Survived']
target = data.loc[:,data.columns == 'Survived']

data.columns != 'Survived' # 会返回一个bool值的列表



# 如果是选择特定的两个或三个列,那么则
feature = data.loc[:, ['Sex', 'Embarked']] # 加上 [] 将两个特征合并起来

常忘记的函数:返回最大值所在位置的索引

如果是列表,那么可用:lst.index(max(lst))

如果是数组,那么为:np.argmax( arr )

python中并没有argmax这个函数,只有numpy中才有,而且是适用于数组(列表也适用)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值