![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python数据分析与挖掘
文章平均质量分 58
小白tree
致力于成为图形学工程师的小白
展开
-
详解GMM高斯混合模型EM模型
一般讲到GMM就会讲到EM。我不过多的介绍EM算法。这里只是举一些例子来看看真实的GMM怎么用EM算的。记住GMM的作用,就是聚类!hard-GMM和soft-GMM是为了对标k-means和soft k-means。在中文互联网上搜索到的GMM,其实基本都是soft-GMM。所以这里我先介绍一下hard-GMM。初始化两个簇权重分别为w1=2/6=1/3,w2=4/6=2/3w_1 = 2/6 = 1/3, w_2 = 4/6 = 2/3w1=2/6=1/3,w2=4/6=2/3.由此可知,两个原创 2022-11-27 20:11:36 · 1049 阅读 · 0 评论 -
决策树:ID3算法与CART算法的区别
我这里只从使用的准则出发且对于《统计学习方法》Page71例5.1来说。ID3——信息增益解:1.首先计算经验熵H(D)*设X是一个取有限个值的离散随机变量,其概率分布为P(X=xi)=pi,i=1,2,...,nP(X=x_i)=p_i, i=1,2,...,nP(X=xi)=pi,i=1,2,...,n*则随机变量X的熵定义:H(X)=−∑i=1npilog2(pi)H(...原创 2019-09-06 21:29:43 · 2322 阅读 · 1 评论 -
哪些机器学习模型需要归一化
归一化是对连续特征来说的。那么连续特征的归一化,起到的主要作用是进行数值缩放。数值缩放的目的是解决梯度下降时,等高线是椭圆导致迭代次数增多的问题。原创 2021-05-10 18:37:15 · 3836 阅读 · 2 评论 -
密度聚类:OPTICS算法简单易懂版
如何理解这张reach_dist—points图并实现分类样本点3,显然离样本点1的可达距离 < eps,那么归到与样本点0一类是没有问题的。如果你是这样想就错了!上面的例子没有给出噪声点样本。注意此时eps已不再是inf,而是依据图自定义的。从结果队列 $order\_list$ 按顺序取出样本点,直到结果队列为空:若该点的**可达距离 eps**,为噪声点若该点的**核心距离 < eps**,为新的聚类簇.........原创 2022-08-01 21:44:24 · 1707 阅读 · 1 评论 -
密度聚类:OPTICS算法详解
如何理解这张reach_dist—points图并实现分类样本点3,显然离样本点1的可达距离 < eps,那么归到与样本点0一类是没有问题的。如果你是这样想就错了!上面的例子没有给出噪声点样本。注意此时eps已不再是inf,而是依据图自定义的。从结果队列 $order\_list$ 按顺序取出样本点,直到结果队列为空:若该点的**可达距离 eps**,为噪声点若该点的**核心距离 < eps**,为新的聚类簇......原创 2022-07-30 11:36:18 · 5865 阅读 · 3 评论 -
pandas groupby分组后对每个组进行fillna填值
pandas Dataframe grouby分组填值fillna ffill bfill原创 2022-07-06 21:31:48 · 3463 阅读 · 1 评论 -
pandas 如何获得每类A的月末数据B
如何取到下面这个dataframe中,每一类Code对应的月末数据即我们想要得到下面的这种效果二、解决问题三、注意:如果不用分每类A,且要保持原时间如2018-01-01原创 2022-06-18 10:33:05 · 378 阅读 · 0 评论 -
聚类集成方法python实现(基于相似度、基于重标记法)
基于相似度的方法时间和空间复杂度太高,实现一下重标记法——硬标记对应法原创 2022-06-17 22:41:26 · 1527 阅读 · 3 评论 -
pandas使用分位数筛选满足条件的行
分位数计算原理参见《python–pandas 分位数》下面直接使用pandas的quantile方法1、给个例子import pandas as pddf = pd.DataFrame({'a':[3,3,3,3,3,3,3]})sum(df["a"] == 3)Out[1]: 7df['a'].quantile(0.9) # 90%分位数Out[2]: 3.0df['a'].quantile(0.8) # 80%分位数Out[3]: 3.02、精度问题但是无论是pandas的q原创 2022-05-15 17:39:36 · 1903 阅读 · 0 评论 -
简单移动平均SMA和指数移动平均EMA
一、简单移动平均最近有一个平滑的需求:设置平滑期数h(奇数),每期点平滑方法是:取该期前后共m期(含本期)点的平均值。如果前或后没有足够的点则不用平滑。特别地,如果取m=1,那就是取本期即可,相当于不平滑;如[1,3,2,4] -> [1,3,2,4]如果取m=3,那就是取本期前一期、本期以及本期后一期的平均值;如[1,3,2,4] -> [1,2,3,4],其中开头的1和末尾的4是不用平滑的,因为前或后没有足够的点。2 = (1+3+2)/3,3 = (3+2+4)/3这种平滑方式就原创 2022-05-15 11:21:23 · 1247 阅读 · 0 评论 -
ValueError: n_components=50 must be between 0 and min(n_samples, n_features)=20 with svd_solver=‘ful
PCA设置的参数n_components必须 <= min(样本量,特征量).个人从sklearn实现的方式——通过SVD,来理解:m X n的矩阵,秩为min(m,n),最终的奇异值个数也必须<=min(m,n),对应的特征向量维数也要<=min(m,n)参考:Stack Overflow《PCA降维 维度 样本数 feature数》...原创 2022-02-17 20:34:19 · 8355 阅读 · 3 评论 -
surprise numpy.core._exceptions._ArrayMemoryError: Unable to allocate 864. GiB for an array with
在使用surprise对google数据集进行基于用户的推荐算法(KNNBaseline)训练时,内存超限报错如下numpy.core._exceptions._ArrayMemoryError: Unable to allocate 864. GiB for an array with shape (340553, 340553) and data type float64原因也很简单:数据集中一共有书籍340553本,如果计算共现矩阵,则会在numpy创建340553 X 340553大小的矩阵原创 2022-02-02 22:18:54 · 9215 阅读 · 1 评论 -
报表中pandas缺失值的处理与保留
在做一些如金融分析报表的时候,一般既不可以像平常机器学习那样直接dropna将缺失值一删了之,也不能插值。这时候缺失值的处理就可能比较麻烦。先说下结论:pandas会将数值型缺失值读取为nan,使用pd.isna()和pandas中的时间缺失值类型和numpy的是不一样的,一、如果是存成int型的如股票代码有缺失一般都会将这列的类型读取为np.float64,有时候想把其转化为np.int64是没有必要的,因为输出到文件时,648000不会...原创 2022-02-01 14:46:21 · 2752 阅读 · 0 评论 -
机器学习中的验证集
在机器学习和深度学习中,验证集都是很常见的概念。但是显示的验证集似乎在使用sklearn的机器学习的模型上不常见,比如有train_test_split却没有train_validation_test_split。可能原因之一在于设计者为sklearn提供了交叉验证cross_validation和网格搜索Grid_search,给定参数池、交叉验证的折数和评价方式,就可以直接提供最优参数和最优得分。这一点可以去查阅相应的API。但,如果想要显示的体现验证集的参数调优,再在测试集上计算泛化误差。这一点原创 2022-01-31 19:29:25 · 2034 阅读 · 0 评论 -
深度学习推荐系统的算法简单实现
一、数据集获取二、数据处理1、读取csv文件2、用户ID和图书ID的处理三、深度学习模型四、评估模型1、loss2、TSNE和PCA降维参考:《Building a book Recommendation System using Keras》《用 Keras 实现图书推荐系统》《新闻分类:多分类问题(Keras实现)》《Series.value_counts,pd.value_counts计算Series,DataFrame数据频率》...原创 2021-06-16 17:05:15 · 5103 阅读 · 7 评论 -
DataFrame数据中某列有重复值,利用groupby累加合并对应列的值
dataset.groupby("Book_id").Rating.sum() # 对Book_id对应的Rating列的值求和dataset.groupby("Book_id").Rating.mean() # 对Book_id对应的Rating列的值求均值原创 2021-05-17 00:42:33 · 3596 阅读 · 0 评论 -
一个语句解决pandas读取数据遇到的编码不符,忽略错行的问题
有时候文件会报错编码问题或者是像下面这样数据不规范导致的问题:ParserError:Error tokenizing data.C error:Expected 2 fields in line 407,saw 3.# 先通过open解决部分行有字节编码错误,errors='ignore'with open('your.csv', encoding='utf-8',errors='ignore') as f: # 再解决部分报错行如 ParserError:Error tokenizing dat原创 2021-05-14 11:29:39 · 3184 阅读 · 0 评论 -
机器学习——交叉验证实现多进程并行
一、前言1、众所周知,python因为其全局解释器锁GIL而无法通过线程实现真正的平行计算,所以我们不用python的多线程2、我没有用sklearn内置的机器学习库(sklearn或者xgboost可能内置了一些方便的参数,调用就可实现并行)2、对于我这样的懒人来说,看了multiprocess模块还是嫌麻烦。3、所以我推荐from concurrent.futures import P...原创 2020-03-27 11:36:48 · 1188 阅读 · 0 评论 -
分别用numpy和pandas划分数据集以完成交叉验证
先说个结论:使用numpy和pandas都可方便的使用sklearn的交叉验证函数cross_validation_score,但是pandas更好,可以用于更多的适应情况,比如自己写评估函数等。一、numpy版本# np.loadtxt读取label.csv(跳过表头),作为tmp_datatmp_data = np.loadtxt("data.csv", delimiter=',', s...原创 2020-03-25 16:57:00 · 2881 阅读 · 0 评论 -
sklearn中的模型评估(分类报告classification_report,混淆矩阵confusion_matrix,准确率acc,召回率recall等)
本文适用包括决策树在内的多个ML算法模型。1、二分类、多分类问题的precision、recall(1)在信息检索中,精确率通常用于评价结果的质量,而召回率用来评价结果的完整性。了解其概念,参考——《准确率(Accuracy), 精确率(Precision), 召回率(Recall)和F1-Measure》(2)在多分类问题应用这些概念,把每个类别单独视为"正",所有其它类型视为"负"。...原创 2020-03-22 21:32:36 · 6071 阅读 · 0 评论 -
使用pandas和matplotlib对excel文件数据绘制柱状图
2022年10月14日更新,在最新的matplotlib版本(3.4.0及之后)中,有个新的函数。由于整体数值相差较大(如最低成交个数和最低成交价的数值差距),这里分成两段代码,分别显示。可以很好的实现柱状图(含条形图)数据标签显示需求。因此不再需要自定义的。实验用到的数据是这样的,你可以右键选择新建标签页打开图片看到它。2.对数据进行可视化,要求横轴是竞价日期,纵轴表现其他各属性。原创 2019-11-10 10:14:36 · 11972 阅读 · 1 评论 -
使用XGboost模块XGBClassifier、plot_importance来做特征重要性排序——修改f1,f2等字段
https://blog.csdn.net/weixin_43469047/article/details/100181972之前一直以为是xgboost库的问题,现在才发现原来有很多是pyplot子库可以做的,而且plot_importance()方法也确实提供了这些方法,眼拙眼拙。from numpy import loadtxtimport xgboost as xgbfrom xg...原创 2019-10-01 16:07:03 · 17757 阅读 · 18 评论 -
数据预处理
1.数据清洗1.1缺失值处理处理缺失值有3种方法:(1)删除记录(2)数据插补插补方法方法描述均值 / 中位数 / 众数插补根据属性值的类型,用该属性取值的平均数 / 中位数 / 众数进行插补使用固定值将缺失的属性用一个常量替换。如广州一个工厂普通外来务工人员的“基本工资”属性的空缺值可以用2015年广州市普通外来务工人员工资标准1895元/月,该方法就是使...原创 2019-08-18 11:57:37 · 699 阅读 · 0 评论 -
Python分类预测模型特点
读《Python数据分析与挖掘实战》笔记常见的模型评价和在Python中的实现——模型模型特点位于逻辑回归比较基础的线性分类模型,很多时候是简单有效的选择sklearn.linear_modelSVM强大的模型,可以用来回归、预测、分类等,而根据选取不同的核函数。模型可以是线性的/非线性的sklearn.svm决策树基于“分类讨论,逐步细化”思想的分...原创 2019-08-18 11:28:18 · 1377 阅读 · 0 评论 -
Python主要数据预处理函数(interpolate/unique/isnull/notnull/PCA/random)
读《Python数据分析与挖掘实战》函数名函数功能所属拓展库interpolate一维、高维数据插值Scipyunique去除数据中重复元素,得到单值元素列表,是对象的方法名Pandas/Numpynunique查看数据去重后元素的数量Pandasisnull判断是否是空值Pandasnotnull判断是否非空值Pandas...原创 2019-08-15 17:27:22 · 1281 阅读 · 0 评论 -
《Python数据分析与挖掘实战》第2章笔记
1.列表/元组相关的函数函数功能函数功能cmp(a,b)比较两个列表/元组的元素min(a)返回列表/元组元素最小值len(a)列表/元组元素个数sum(a)将列表/元组中的元素求和max(a)返回列表/元祖元素最大值sorted对列表的元素进行升序排序2. 列表相关的方法函数功能a.append(1)将1添加到...原创 2019-08-01 20:15:57 · 218 阅读 · 0 评论 -
python使用xlrd和xlwt模块对Excel文件读写
最近找的pandas资料,发现pandas读取excel数据虽然功能强大,但是读取到的数据都是封装成了Series和Dataframe结构,不能用列表append,很难受,所以来总结下简便的xlrd和xlwt模块读写。xlrdimport xlrdpath = u'哦哦.xlsx'workbook = xlrd.open_workbook(path)# 输出Excel文件所有sheet...原创 2019-08-04 01:43:57 · 1308 阅读 · 0 评论