《统计学习方法》线性模型的读书笔记 逻辑回归:基本原理:1)正负样本为1和0:预测函数:将输入特征x乘以线性回归系数w(可以增加截距b),得到z=wTx+b。选择f(z)=1/(1+exp(z))函数作为sigmoid函数,作为预测类别为正样本的概率值h(x),负样本概率值为1-h(x),将正负样本概率值求商之后再取对数,即概率比值对数ln(h(x)/(1-h(x)))=wTx为一个线性模型。如何求解最优的w:首先要构造目标...
numpy中ndarray取单行样本的小贴士 当我们切分好训练集、测试集后,如果想取单行样本放进模型中预测或者训练,需要注意ndarray的维度是否正确。有几种reshape方式:1、如果我们直接用x_test[0]的方式,取出来的numpy数组是形如(64,)这种格式,需要通过reshape(1,64)或者reshape(1,-1)(不限制列数,只限制转换后的行数)对单行数据进行reshape。2、也可以直接使用切片引用的方式,取出来的...
求订单等时间间隔技巧 使用dataframe.shift函数,将dataframe记录往下一行平移后,再做相减差分,再做相隔天数的统计。order_diff = grouped_user.apply(lambda x:x.order_dt - x.order_dt.shift())order_diff.head(10)order_diff.describe()(order_diff / np.timedelta...
对dataframe使用apply方法小贴士 当apply函数处理的不是单个元素,而是整个dataframe行或者列时,为保证apply方法最终返回dataframe,可以在定义操作函数返回值时,将返回值设定为与原来dataframe相同列和index的series类型。...
将dataframe中的datetime列转成月份的格式 1、先将dataframe列转成ndarray再做类型强制转换成月份为单位:user_min=user_grouped[‘min’].values.astype(‘datetime64[M]’)。2、把转换后的ndarray用pd.DataFrame方法转成dataframe类型:user_month=pd.DataFrame(user_min,columns=[‘min’])。...
sql笔记-计算每月累计销售额 1、先计算店铺每月的销售额,店铺、月份、销售额,建立临时表a。2、通过自连接的方式将表a自连接,以店铺名为匹配条件,得到每个店铺每个月与该店铺其他月份的连接结果。得到表b。3、筛选表b中某店铺前一个月份列大于等于后一个月份列的记录,对金额做sum聚合,得到该店铺该月份的累计值,group by字段为店铺名、前一个月份列、当月金额值。得到结果表c。1)按照商店名称和月份进行分组统计:crea...
hive sql常见问题 1、列转行问题。某一列的值为固定分隔符的数组,需要先将数组值用split切分成数组,再将数组值用explode拆分出来配合lateral view使用,与原表形成笛卡尔联结的表。2、行转列问题。先判断需要转成的列,每一行记录应用case when对所有列进行判断赋值。...
设计SQL语句的思路 1、首先判断SQL统计的计算逻辑,看看涉及到哪些表和哪些字段。2、涉及到的表和字段关联在一起以后,用于聚合的每一行记录是怎么样的?有哪些原始字段和中间加工字段?是否需要分步来匹配聚合?3、编写SQL语句。4、再考虑SQL的优化。...
SQL笔记 应用group by进行分组时,可以通过函数对表中某一个字段进行加工后,以函数结果来进行分组。eg:Selectleft(imp_date,6) 月份,count(distinct imp_date) 每月领取天数,count(distinct qimei) 每月用户数,sum(add_money)/count(distinct qimei) 每月人均领取金额,co...
boosting方法学习笔记(一) Adaboost:通过不断迭代计算不同的训练集权重分布下的基分类器和分类器的系数,最后将分类器通过线性组合的方式构成最终的分类器。迭代更新的系数通过每一轮迭代的分类误差率计算。核心思想是根据训练误差调整训练集的权重分布和基分类器的系数。GBDT(提升树):采用加法模型(基分类器的线性组合)与前向分步算法。前向分布算法即是每一步只学习一个基函数和系数,从前向后相加,逐步逼近优化目标函数,每一次拟合...
关于《统计学习方法》中回归问题的提升树算法的通俗理解 在每一轮迭代中,拟合上一轮回归函数与真实值y之间的残差,形成这一轮的回归树,并将这一轮拟合的回归树加上上一轮的回归函数形成这一轮的预测回归函数,以使这一轮的预测函数更逼近真实值y,然后不断迭代循环逼近。...
pandas.corr()相关检验方法的选择 连续变量之间的检验,用pearson系数(服从正态分布);离散变量或非正态分布连续变量之间的检验,用spearman或者kendall系数;连续与离散变量之间,可以考虑Kendall、卡方检验。spearman相关系数范围:0.2-0.4弱正相关,0.4-0.6算是中等相关,0.6-0.8达到强正相关。pearson相关系数范围:0.8-1.0 极强相关0.6-0.8 强相...
共线性对决策树和随机森林有影响吗 决策树和随机森林的预测能力不受多重共线性影响。但是数据的解释性会被多重共线性影响。随机森林可以返回特征的重要性(importantce),当有多重共线性时,importance会被影响。一些具体多重共线性的特征的重要性会被相互抵消,从而影响我们解释和理解特征。比如说,特征A和B完全一样,我们在用随机森林时,它们的重要性应该非常接近(考虑到随机性)。如果我们在训练前删除特征B,那么特征A的重要性...
sklearn中OneHotEncoder使用注意事项——sparse参数 初始化OneHotEncoder实例时,默认sparse参数为True,编码后返回的是一个稀疏矩阵的对象,如果要使用一般要调用toarray()方法转化成array对象。若将sparse参数设置为False,则直接生成array对象,可直接使用。...
pd.read_csv读取文件时注意路径名问题 pd.read_csv读取文件时,要注意转义字符\的问题。有几种路径编写格式:1、路径名字符串之前加r,data=pd.read_csv(r’C:\AI\代码文档\工作\feature\fea_hfx4.csv’)。2、文件路径中的\改成/或者\。不然可能会提示编码错误。...
math.log函数和numpy.log函数区别 math.log函数只能对某个数值进行处理,无法对列表、序列等进行处理,需要通过循环的方式解决。numpy.log函数可以对数值或者列表、序列等进行对数运算,比较适用于在对dataframe、series整列做数据处理的场景。...
Python中reload重新设置编码 转载:https://www.cnblogs.com/fengff/p/8857360.htmlpython为什么需要reload(sys)后设置编码python在安装时,默认的编码是ascii,当程序中出现非ascii编码时,python的处理常常会报这样的错UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0x?? in positio...