pyhton
文章平均质量分 76
xia ge tou lia
致力于数据分析行业~
展开
-
机器学习——特征工程——交互特征(多项式特征)
两个特征的乘积可以组成一对简单的交互特征,这种相乘关系可以用逻辑操作符AND来类比,它可以表示出由一对条件形成的结果:“该购买行为来自于邮政编码为98121的地区”AND“用户年龄在18和35岁之间”。这种特征在基于决策树的模型中极其常见,在广义线性模型中也经常使用。简单线性模型使用独立输入特征, , …, 的线性组合来预测结果变量:。很容易对线性模型进行扩展,使之包含输入特征的两两组合,如下所示:。这样,就可以捕获特征之间的交互作用,因此这些特征对就称为交互特征。如果和是二值特征,那么它们的积原创 2020-12-29 14:22:30 · 8507 阅读 · 2 评论 -
机器学习——特征工程——对数转换、Box-Cox转换
一、对数转换对数函数可以对大数值的范围进行压缩,对小数值的范围进行扩展。x越大,log(x)增长得越慢。如下图:我们以如下数据为例。biz_file = open('精通特征工程/精通特征工程/data/yelp_academic_dataset_business.json')biz_df = pd.DataFrame([json.loads(x) for x in biz_file.readlines()])biz_file.close()biz_df.info()输出:.原创 2020-12-14 18:46:17 · 10420 阅读 · 0 评论 -
python基础——apply(),applymap(),map()方法的区别
import pandas as pdimport numpy as npfrom pandas import DataFramefrom pandas import Seriesdf= DataFrame({ "a":[-1,2,3], "b":[3,-5,7], })输出:df.apply(lambda x:x+1)输出:df.applymap(lambda x:x+1).原创 2020-11-11 16:23:39 · 839 阅读 · 0 评论 -
python基础——报错:‘pip‘ 不是内部或外部命令,也不是可运行的程序或批处理文件
新电脑我们安装anaconda之后,根据需求,我们可能需要导入相应的依赖包,最常用的方法,我们使用cmd调出命令窗口,然后pip install +包名。但是,有时候我们会遇到以下情况:这是因为找不到pip命令的安装路径,查阅文件,我们发现,pip命令文件安装在如下路径:这个时候,我们可以将路径定位到pip命令文件路径之下,然后才能运行pip命令文件,如下:另外一种方法,我们可以将pip命令文件路径添加到坏境变量当中,pip命令文件路径为:C:\ProgramData\Anaco原创 2020-09-08 17:36:12 · 1885 阅读 · 0 评论 -
python基础——matplotlib——scatter和plot方法中的maker参数(点的样式)
一、scatterscatter方法主要用来做散点图展示,而plot方法主要用来做折线图展示,也可以用于散点图的展示。两个方法的参数基本是通用的。以scatter方法为例,常用参数包括:plt.scatter( ['x', 'y', 's=None', 'c=None', 'marker=None', 'cmap=None', 'norm=None', 'vmin=None', 'vmax=None', 'alpha=None', 'linewidths=None', 'verts=&.原创 2020-08-24 20:51:44 · 22623 阅读 · 0 评论 -
python基础——字符串格式化(%操作符与str.format)
在使用print打印方法中,经常会用到字符串格式化操作。常用的格式化符号如下表所示。在使用print输出时,同时输出多个字符串的方法如下。输入:print('the score is %d ad result is %f' % (1298,1.314))输出:the score is 1298 ad result is 1.314000对于浮点型数据,如果要保留特定位数的小数,方法如下。输入:print('the score is %d ad result is %原创 2020-08-23 20:35:54 · 2276 阅读 · 0 评论 -
python基础——numpy——np.c_和np.r_函数(矩阵拼接)
np.r_是按列连接两个矩阵,就是把两矩阵上下相加,要求列数相等。np.c_是按行连接两个矩阵,就是把两矩阵左右相加,要求行数相等。如下:import numpy as npfrom IPython.core.interactiveshell import InteractiveShellInteractiveShell.ast_node_interactivity = "all"a = np.array([[1, 2, 3],[7,8,9]])b = np.array([[4,5,原创 2020-08-22 21:24:11 · 515 阅读 · 0 评论 -
python基础——pandas——stack和unstack函数(附加reset_index,set_index函数)
在用pandas进行数据重排时,经常用到stack和unstack两个函数。stack的意思是堆叠,堆积,unstack即“不要堆叠”,我对两个函数是这样理解和区分的。 常见的数据的层次化结构有两种,一种是“花括号”(下图左),一种是表格(下图右),即下面这样的这两种形式:花括号结构只有“列方向”上的索引(类似于层次化的Series),结构更加偏向于堆叠(Series-stack,方便记忆)。表格在行列方向上均有索引(类似于DataFrame)。stack函数会将数据从”表格结构“变成”花括号原创 2020-08-21 08:57:49 · 2520 阅读 · 0 评论 -
python——合并同一个文件夹下所有excel文件
有以下,文件夹中的文件,共29个。各个excel有多个sheet文件,不同excel文件当中同一个sheet文件的数据结构是相同的,如下:现在需要将多个excel中的相同命名的sheet合并到同一个sheet当中,组合成一个excel文件。具体代码如下:#使用os模块walk函数,搜索出某目录下的全部excel文件def getFileName(filepath): file_list = [] for root,dirs,files in os.walk(fil..原创 2020-06-22 10:50:27 · 5858 阅读 · 4 评论 -
统计推断——正态性检验(图形方法、偏度和峰度、统计(拟合优度)检验)
正态分布是很多计量数据比较分析的假设前提,因此在做比较分析之前要首先验证样本数据所代表的总体是否服从正态分布(这样说太费劲,我们以后还是简单地说成“数据是否正态”)。当然对于比率数据的比较也需要满足分布前提,通常是二项分布和泊松分布,对于二项分布的比率比较,一般不需要做分布的验证。而对泊松分析的比率比较则需要事先验证其分布,验证方法就是卡方检验,这已在我前面发表的《抽样分布篇之五:卡尔•皮尔逊和卡...原创 2020-05-14 18:56:34 · 32350 阅读 · 1 评论 -
机器学习——特征工程——数据的标准化(Z-Score,Maxmin,MaxAbs,RobustScaler,Normalizer)
数据标准化是一个常用的数据预处理操作,目的是处理不同规模和量纲的数据,使其缩放到相同的数据区间和范围,以减少规模、特征、分布差异等对模型的影响。标准化方法 公式 优点 缺点 转换区间 适用场景 Z-Score(标准化) 适用大多数类型的数据,标准化之后的数据是以0为均值,方差为1的正态分布 是一种中心化方法,会改变原有数据得分布结构 ...原创 2020-04-28 14:38:56 · 15119 阅读 · 2 评论 -
python——numpy——hstack和vstack(数组堆叠、平铺)
np.hstack():在水平方向上平铺,行数和原数据一致。np.vstack():在竖直方向上堆叠,列数和原数据一致。注意:案例1:#一维的堆叠平铺a = np.array([1,2,3])b = np.array([4,5,6])c = np.array([7,8,9])np.hstack((a,b,c))np.vstack((a,b,c))#二维的堆叠...原创 2020-04-27 21:20:12 · 1305 阅读 · 0 评论 -
python——numpy——corrcoef函数(皮尔逊相关系数)
案例1:import numpy as npdata=np.loadtxt('data5.txt',delimiter='\t')x=data[:,:-1]pd.DataFrame(x).head()coorelation_matrix=np.corrcoef(x,rowvar=0) #相关性分析,rowvar=0表示对列进行分析pd.DataFrame(coorelation...原创 2020-04-27 21:06:00 · 7114 阅读 · 2 评论 -
机器学习——数据的共线性问题(岭回归、LASSO回归、逐步回归、主成分回归)
一、如何检验共线性容忍度(Trlerance):容忍度是每个自变量作为因变量对其他自变量进行回归建模时得到的残差比例,大小用1减得到的决定系数来表示。容忍度的值介于0和1之间,如果值越小,说明这个自变量与其他自变量间越可能存在共线性问题。 方差膨胀因子(Variance Inflation Factor,VIF):VIF是容忍度的倒数,值越大则共线性问题越明显,通常以10作为判断边界。当VI...原创 2020-04-27 10:19:52 · 13785 阅读 · 0 评论 -
python基础——抽样——概率抽样(简单随机、等距、分层、整群)
1、简单随机抽样#简单随机抽样,整体10000个样本import randomimport numpy as npimport pandas as pddata=np.loadtxt('data3.txt')len(data)data_sample=random.sample(data.tolist(),2000) #随机抽取2000个样本,sample函数,array必须转...原创 2020-04-25 14:32:50 · 14371 阅读 · 5 评论 -
python基础——extend与append的区别
extend与append方法的相同之处在于都是将新数据追加到列表的后面。区别 extend方法只能接收list,且把这个list中的每个元素添加到原list中。 append方法可以接收任意数据类型的参数,并且简单地追加到list尾部。 案例:a=[1,2,3,4,5]a.append([1,2,3])ab=[1,2,3,4,5]b.extend([1,...原创 2020-04-25 13:36:54 · 306 阅读 · 0 评论 -
python中利用OneHotEncoder进行分类变量和顺序变量的标志转换
数据建模的过程中,很多算法无法直接处理非数值型的变量。非数值变量主要分为分类变量和顺序变量。一、分类变量和顺序变量分类变量:(性别:男、女)(颜色:红、黄、绿.)顺序数据:(学历:博士、研究生、学士)(用户价值:高、中、低)二、运用标志方法处理分类和顺序变量将所有分类或顺序变量的值域从一列多值的形态转换为多列只包含真值的形态,称为标示法,如下图:【讨论】为何不能直接...原创 2020-04-13 23:03:14 · 3596 阅读 · 0 评论 -
python的pandas重复值处理(duplicated()和drop_duplicates())
一、生成重复记录数据import numpy as npimport pandas as pd#生成重复数据df=pd.DataFrame(np.ones([5,2]),columns=['col1','col2'])df['col3']=['a','b','a','c','d']df['col4']=[3,2,3,2,2]df=df.reindex(columns=['col...原创 2020-04-13 17:36:57 · 14035 阅读 · 0 评论 -
python的pandas异常值处理(Z-score方法)
一、构建包含异常值的矩阵import pandas as pdimport matplotlib.pyplot as plt#构建包含异常值的矩阵df=pd.DataFrame([[1,12],[120,17],[3,31],[5,53],[2,22],[12,32],[13,43]],columns=['col1','col2'])df输出:二、画图#散点图p...原创 2020-04-13 17:04:43 · 10814 阅读 · 1 评论 -
python中pandas、numpy、sklearn.SimpleImputer的缺失值联合操作(dropna()函数、fillna()函数)
一、生成缺失值数据import pandas as pdimport numpy as npfrom IPython.core.interactiveshell import InteractiveShellInteractiveShell.ast_node_interactivity = "all"df=pd.DataFrame(np.random.randn(6,5),co...原创 2020-04-13 09:59:21 · 1579 阅读 · 0 评论 -
统计推断——贝叶斯推断(了解)
假设检验的中心思想可以用一句话概括:“如果原假设正确,那么你观测到极端统计量(当前情况及更差情况)的概率仅有3%。”推断的一个替代方法是将未知参数视为随机变量。从参数的先验分布(prior distribution)出发,再利用观测数据和贝叶斯定理计算出更新后的后验分布(posterior distribution)。不再对检验本身给出概率判断,而是对参数本身给出概率判断。我们先了解一些基本...原创 2020-04-03 17:51:34 · 2476 阅读 · 0 评论 -
python基础——yield用法
yield和return在直观上都是“返回值”的作用。首先比较下return 与 yield的区别:return:在程序函数中返回某个值,返回之后函数不在继续执行,彻底结束。yield:带有yield的函数是一个迭代器,函数返回某个值时,会停留在某个位置,返回函数值后,会在前面停留的位置继续执行, 直到程序结束案例:返回100以内所有的奇数。imp...原创 2020-03-31 10:31:34 · 310 阅读 · 0 评论 -
python——numpy——random模块及常见分布模拟
一、随机数1、numpy.random.rand()生成均匀分布的随机小数。rand函数根据给定维度生成[0,1)之间的数据,包含0,不包含1 括号参数为生成随机数的维度一维数据import numpy as npimport matplotlib.pyplot as pltsample=np.random.rand(1000) #生成1000个(0,1]之...原创 2020-03-29 18:45:19 · 7140 阅读 · 0 评论 -
python——pandas——时间操作函数(to_datetime、DateOffset、DatetimeIndex联合操作)
案例:有以下数据集:其中,cmbirth代表的是距离1899年12月的整数月值。现在我们需要根据这个值,计算这些人出生在哪个年代?(70年代?80年代?90年代?)。先上代码:month0=pd.to_datetime('1899-12-15') #返回时间戳。dates=[month0+pd.DateOffset(months=cm) for cm in resp5['...原创 2020-03-26 22:57:13 · 8634 阅读 · 0 评论 -
python——numpy——interp()函数
numpy.interp()主要使用场景为一维线性插值,返回离散数据的一维分段线性插值结果。参数:x: 数组待插入数据的横坐标.xp: 一维浮点数序列原始数据点的横坐标,如果period参数没有指定那么就必须是递增的。否则,在使用xp = xp % period正则化之后,xp在内部进行排序.fp: 一维浮点数或复数序列原始数据点的纵坐标,和xp序列等长.left...原创 2020-03-26 12:38:20 · 9366 阅读 · 0 评论 -
python——pandas——query()函数
1、查询列price大于100的数据,返回对应的行名,然后可修改其值;条件'price>100'可以是'price<100 and price>20等。index=dfData.query('price>100').index原创 2020-03-24 13:02:54 · 1678 阅读 · 0 评论 -
python——pandas——rolling、ewm函数(移动平均VS加权移动平均)
在时间序列分析当中,我们经常会遇到时间轴上数据缺失值的补充,常用的方法使用移动平均值。Series的方法fillna()实现了该功能。常用的移动平均值方法有以下两种:滚动平均值roll_mean=reindexed['ppg'].rolling(window=30).mean()滚动平均值的理解较为简单:如现在有一个Series,包含100个数(),现在我们要以10为窗口,计算滚动...原创 2020-03-24 11:52:28 · 22840 阅读 · 0 评论 -
Jupter Notebook安装nbextension扩展功能后不显示Nbextensions标签的解决办法
解决方法:1、先执行卸载命令,需要卸载以下两个包。——在Jupter Notebook中操作!pip uninstall jupyter_contrib_nbextensions!pip uninstall jupyter_nbextensions_configurator2、卸载成功之后,执行以下代码。——在Jupter Notebook中操作!pip install -i...原创 2020-03-22 14:39:06 · 5031 阅读 · 1 评论 -
python——pandas——date_range函数(时间序列缺失值操作)
pandas.date_range(start=None, end=None, periods=None, freq='D', tz=None, normalize=False, name=None, closed=None, **kwargs)该函数主要用于生成一个固定频率的时间索引,在调用构造方法时,必须指定start、end、periods中的两个参数值,否则报错。主要参数说明:...原创 2020-03-20 23:32:27 · 2254 阅读 · 2 评论 -
统计推断——假设检验——python代码实现“功效”计算——以检验均值差为例
两类错误在经典假设检验中,如果p值低于某个阈值(常用阈值α=5%),那么我们认为一个效应是具有统计学意义的(是显著的),这个过程产生两个问题:如果一个效应的确是偶然发生的,那么我们将它误判为统计显著的概率是多少?这个概率就是误报率(false positive rate)。 如果一个效应不是偶然的,那么假设检验失败的概率是多少?这个概率称为漏报率(false negative rate)...原创 2020-03-16 12:17:36 · 2041 阅读 · 0 评论 -
统计推断——假设检验——python代码实现偏差总和、卡方检验(骰子问题)
假设你经营一家赌场,怀疑一位顾客使用作弊骰子,也就是说这个骰子经过处理,更容易掷出其中一面。你抓住这位受怀疑的作弊者,没收了筛子,但是还必须证明这个骰子有问题,你将这个骰子掷了60次,得到如下结果: 点数 1 2 3 4 5 6 频数 8 9 19 5 8 11 你希望的结果是每个点数平均出现10次。...原创 2020-03-14 23:22:59 · 1419 阅读 · 0 评论 -
统计推断——假设检验——python代码检验两变量相关性,检验线性模型(置换法)
简介在全国家庭增长调查数据集中,新生儿体重和母亲年龄的相关性均为0.07,年龄较大的母亲似乎产下的孩子更重,但是,这种效应是偶然产生的吗?检验方案选择Pearson相关性作为检验统计量,此命题,我们使用双侧检验。原假设:母亲年龄和新生儿体重之间没有相关性。备择假设:母亲年龄和新生儿体重之间有相关性。思路:假设母亲年龄和新生儿体重之间没有相关性,那么我们将“母亲年龄”这组数据...原创 2020-03-14 18:31:49 · 1896 阅读 · 0 评论 -
统计推断——假设检验——python代码检验两均值差(置换法)
样本情况以下有一份1973年,美国疾病控制和预防中心(CDC)进行全国家庭增长调查的数据报告,收集“与家庭生活、婚姻情况、妊娠情况、生育情况、避孕情况,以及两性健康相关的信息。此项调查的结果用于进行健康服务和健康教育项目的规划,以及对家庭、生育及健康情况进行统计研究”。其中“prglngth”表示孕妇每胎妊娠的时长(周数),我们现在要验证一个结论:孕妇第一胎妊娠的时长(周数)大于其他妊...原创 2020-03-13 19:04:14 · 1382 阅读 · 0 评论 -
python——numpy——数据分区(digitize,cut,qcut,quantile函数)
digitize函数主要用于将一组数据进行分区,案例如下import numpy as npimport pandas as pdfrom IPython.core.interactiveshell import InteractiveShellInteractiveShell.ast_node_interactivity = "all"df=pd.DataFrame(np.ra...原创 2020-03-13 12:05:38 · 9020 阅读 · 0 评论 -
python——pandas——dropna()函数
该函数主要用于滤除缺失数据。import pandas as pdimport numpy as npfrom IPython.core.interactiveshell import InteractiveShellInteractiveShell.ast_node_interactivity = "all"df=pd.DataFrame(np.random.randn(6,...原创 2020-03-13 10:29:15 · 8485 阅读 · 1 评论 -
python——numpy——roll()函数
numpy.roll(a,shift,axis=None)函数解释:沿着给定轴滚动数组元素。超出最后位置的元素将会滚动到第一个位置。参数:a : (array_like)输入数组shift : (int or tuple of ints)滚动的长度。如果是提供元组的话,下面的轴参数的维度也应该跟shift维度一样。axis : (int or tuple of ints,...原创 2020-03-12 17:58:18 · 6081 阅读 · 0 评论 -
Jupter Notebook利用pip安装库时出现Read timed out.解决办法
Jupter Notebook中如下安装pandas_profiling库:!pip install pandas_profiling报以下错误:raise ReadTimeoutError(self._pool, None, 'Read timed out.')ReadTimeoutError: HTTPSConnectionPool(host='files.pythonho...原创 2020-03-10 16:14:09 · 1348 阅读 · 0 评论 -
python——numpy、pandas——diff函数(可应用于array,Series类型数据)
1、数组(array):表示相邻两个元素之差。import numpy as npa=np.array([1, 6, 7, 8, 12])diff_x1 = np.diff(a)diff_x1输出:array([5, 1, 1, 4])2、Series:可以用于同列相邻元素差值的计算(如时间间隔的计算等)。有以下数据,第四列minutes表示婴儿出生的时间点,现在我要...原创 2020-03-08 23:04:44 · 6129 阅读 · 0 评论 -
python——Numpy——random.choice函数(有放回、无放回抽样)
和np.random.randint(0,5,3)意思相同,表示从[0,5)之间随机以等概率选取3个数原创 2020-03-08 17:58:52 · 29027 阅读 · 2 评论 -
Python基础——dict(字典) ——items() 方法
Python 字典 items() 方法以列表返回可遍历的(键, 值) 元组数组。实例1首先创建一个字典dict1={}dict1[111]=3dict1[333]=19dict1[222]=13dict1输出:{111: 3, 333: 19, 222: 13}调用items方法:dict1.items()输出:dict_items([(111...原创 2020-03-07 23:26:25 · 3089 阅读 · 0 评论