- 博客(39)
- 收藏
- 关注
原创 贝叶斯算法对PDF文档归类
前段时间看到有个群在招文档分类志愿者,主要工作是把各个渠道收集到的分析报告(PDF格式)进行分类整理,就想起来机器学习中有个朴素贝叶斯算法正好是处理这种语言文字分类的利器,于是决定写一个分类的脚本来玩玩儿。整个处理思路大致如下:1、获取PDF文档中文字内容另存在TXT文件(pdfminer)2、对TXT文件分词并获取特征向量(jieba)3、划分测试集与训练集并训练模型(sklearn.naive_bayes)4、使用模型进行预测需要注意的是,在获取PDF文档中信息时发现部分文档格式
2020-12-13 10:05:58
508
原创 WordCloud中屏蔽词+背景色设置
利用python的wordcloud包生成词云是一个很实用的技能,最近在绘制词云的过程中又学会了如何屏蔽不想要出现的词及设置更丰富的背景图,特别是背景颜色的设置很多资料都是一笔带过,语焉不详,好在经过痛苦的摸索之后终于被我找到了方法,原谅我激动的心情,啰嗦了这么多(捂脸。。。)from PIL import Imageimport numpy as npfrom wordcloud imp...
2019-07-20 18:14:55
5738
转载 Hive常用函数
Hive内部提供了很多操作字符串的相关函数,本文将对其中部分常用的函数进行介绍。下表为Hive内置的字符串函数,具体的用法可以参见本文的下半部分。返回类型 函数名 描述 int ascii(string str) 返回str第一个字符串的数值 string base64(binary bin) 将二进制参数转换为base64字符串 strin...
2019-06-04 19:18:53
377
转载 集群、分布式是什么
一、大白话解说,半分钟就懂,用生活中的例子来说明:小饭店原来只有一个厨师,切菜洗菜备料炒菜全干。后来客人多了,厨房一个厨师忙不过来,又请了个厨师,两个厨师都能炒一样的菜,两个厨师的关系是集群。为了让厨师专心炒菜,把菜做到极致,再请了个配菜师负责切菜,备菜,备料 ... 厨师和配菜师的关系是分布式。一个配菜师也忙不过来了,又请了个配菜师,两个配菜师关系是集群。一个配...
2019-05-24 11:13:21
260
原创 Python绘图小技巧
jupyter上绘图 %matplotlib inline绘制矢量图 %config InlineBackend.figure_format = 'svg'同时绘制多个图形时,防止重叠 plt.tight_layout()...
2019-05-23 10:03:30
324
原创 客户细分——RFM模型
一、模型概述RFM模型是衡量当前客户价值和客户潜在创利能力的重要工具和手段,在众多的客户关系管理(CRM)的分析模式中,RFM模型是被广泛应用的;该模型通过R(Recency)表示客户购买时间有多远,F(Frequency)表示客户在固定时间内购买次数,M(Monetary)表示客户在固定时间内购买的金额。一般的分析型CRM着重于对客户贡献度的分析,RFM则强调以客户的购买行为来 区分客户...
2019-05-08 15:56:02
24371
原创 用choice解决世界性难题——今天吃什么
“今天吃什么”,说是有史以来困扰人类最多的问题,大概没人会反对吧。“今天吃什么?”“抓阄吧!”“抓阄?这么随意吗”“那就让代码来帮我们科学决策吧!”import randomimport timemenu = []def food_(): menu = input("请输入您的菜单(记得菜名用空格隔开哟):").split() return me...
2019-04-26 17:41:45
376
原创 jupyter查找帮助
pwd:显示当前路径 dir() :不带参数时,返回当前范围内的变量、方法和定义的类型列表;带参数时,返回参数的属性、方法列表。help():返回类的参数及解释...
2019-04-21 14:53:56
1160
原创 jupyter常用快捷键
Ctrl + /:把所选代码注释掉;再按一次,反注释Ctrl + [:所选代码向前缩进4个单元格Ctrl + ]:所选代码向后缩进4个单元格tab:补全shift + tab:显示函数帮助...
2019-04-19 16:47:50
623
原创 用jieba+wordcloud批量绘制词云
from PIL import Imageimport numpy as npfrom wordcloud import WordCloud, ImageColorGeneratorfrom matplotlib import pyplot as pltimport jiebaimport os#定义分词函数def word_cut(file): with open(...
2019-04-19 15:08:57
584
原创 多文件分词并统计词频
import osimport jieba数据集如下:folder_path = r"C:\Users\Machine Learning\comments"os.listdir(folder_path)['201603枕.txt', '201603锅.txt', '201604枕.txt', '201604锅.txt', '201605枕.txt', '201605...
2019-04-18 20:35:57
2411
2
原创 机器学习sklearn(15)TSNE降维
TSNE概念部分参考:http://bindog.github.io/blog/2016/06/04/from-sne-to-tsne-to-largevis/#0x02-%E4%BB%8Esne%E8%AF%B4%E8%B5%B7sklearn.manifold.TSNE(n_components=2,perplexity=30.0,early_exaggeration=12.0,le...
2019-04-15 11:57:18
13984
1
原创 机器学习sklearn(14)PCA降维
降维就是指采用某种映射方法,将原高维空间中的数据点映射到低维度的空间中。在原始的高维空间中,包含冗余信息以及噪声信息,在实际应用中例如图像识别中会造成误差,降低准确率;而通过降维,可以减少信息的冗余、提高识别等的精度,还可以寻求数据内部的本质结构特征。降维的目的特征选择:选择重要的特征子集,删除其余特征; 特征提取:由原始特征形成的较少的新特征。降维的作用:降低时间的复杂度和空...
2019-04-14 18:03:00
969
原创 机器学习sklearn(13)层次聚类
层次聚类(Hierarchical Clustering)是聚类算法的一种,基于层次的聚类算法(Hierarchical Clustering)可以是凝聚的(Agglomerative)或者分裂的(Divisive),取决于层次的划分是“自底向上”还是“自顶向下”。凝聚层次聚类原理是:最初将每个对象看成一个簇,然后将这些簇根据某种规则被一步步合并,就这样不断合并直到达到预设的簇类个数。这里的关键...
2019-04-09 20:34:15
14086
2
原创 机器学习sklearn(12)K-Means聚类
算法原理K均值聚类(K-Means)算法的核心步骤如下:将数据集{D}中随机取K个元素,作为K个簇的各自的中心。 分别计算剩下的元素到K个簇中心的相异度,将这些元素分别划归到相异度最低的簇。 根据聚类结果,重新计算K个簇各自的中心,计算方法是取簇中所有元素各自维度的算术平均数。 将{D}中全部元素按照新的中心重新聚类。 重复第 4 步,直到每个簇的中心基本不再变化。 将结果输出。...
2019-04-04 17:57:26
537
原创 机器学习sklearn(11)神经网络
import numpy as npimport pandas as pdimport matplotlib.pyplot as pltfrom sklearn.neural_network import MLPClassifierfrom sklearn.preprocessing import StandardScaler%matplotlib inline#导入数据集...
2019-04-02 19:50:36
1094
原创 np.newaxis使用心得
最近对着sklearn文档练习机器学习(Machine Learning, ML),代码中遇到一个问题np.newaxis。import matplotlib.pyplot as pltimport numpy as npfrom sklearn import datasets, linear_modelfrom sklearn.metrics import mean_squared_...
2019-03-29 18:13:22
4163
1
原创 机器学习sklearn(10)集成分类
import numpy as npimport matplotlib.pyplot as pltfrom sklearn import datasetsx, y = datasets.make_moons(n_samples=500, noise=.3, random_state=42) #生成数据集print(x)[[ 8.31039149e-01 -2.58748754e-...
2019-03-29 11:08:30
1513
原创 机器学习sklearn(9)支持向量机svm——非线性
参数说明如下:C:惩罚项,float类型,可选参数,默认为1.0,C越大,即对分错样本的惩罚程度越大,因此在训练样本中准确率越高,但是泛化能力降低,也就是对测试数据的分类准确率降低。相反,减小C的话,容许训练样本中有一些误分类错误样本,泛化能力强。对于训练样本带有噪声的情况,一般采用后者,把训练样本集中错误分类的样本作为噪声。 kernel:核函数类型,str类型,默认为’rbf’。可选...
2019-03-26 16:37:11
1448
原创 机器学习sklearn(8)支持向量机svm——线性
支持向量机(Support Vector Machine, SVM)是一类按监督学习(supervised learning)方式对数据进行二元分类(binary classification)的广义线性分类器(generalized linear classifier),其决策边界是对学习样本求解的最大边距超平面(maximum-margin hyperplane)优点:解决高维特征的分...
2019-03-25 17:59:42
576
原创 机器学习sklearn(7)朴素贝叶斯分类
原理:在假定属性之间相互独立的条件下,对于给出的待分类项,求解在此项出现的条件下各个类别出现的概率,然后找出最大的条件概率对应的类别。条件独立公式:如果X和Y相互独立,则有:条件概率公式:或者说:接着看全概率公式:然后很容易得出贝叶斯公式:我们只要计算出所有的K个条件概率,找出最大的条件概率对应的类别,这就是朴素贝叶斯的预测了。优点:发源于古典数学理论,...
2019-03-23 22:27:54
1979
原创 机器学习sklearn(6)决策树分类
原理:由某种原则(信息熵或是基尼系数)来确定决策条件先后顺序,进而通过这一系列条件来实现对数据进行分类。优点:简单直观,生成的决策树很直观 基本不需要预处理,不需要提前归一化,处理缺失值 使用决策树预测的代价是O()。m为样本数 既可以处理离散值也可以处理连续值 可以处理多维度输出的分类问题 相比于神经网络之类的黑盒分类模型,在逻辑上可以得到很好的解释 可以通过交叉验证的剪...
2019-03-20 17:28:28
775
原创 机器学习sklearn(5)k近邻分类
原理:给定一个训练数据集,对新的输入实例,在训练数据集中找到与该实例最邻近的k个实例,这k个实例的多数属于某个类,就把该实例分类到这个类中算法步骤:计算已知类别数据集中的点与当前点之间的距离 按照距离递增排序 选取与当前点距离最近的k个点 确定前k个点所在类别出现的频率 返回前k个点所出现频率最高的类别作为当前点的预测分类优点:简单好用,容易理解,精度高,理论成熟,既可分类也...
2019-03-18 21:05:16
666
原创 机器学习sklearn(4)逻辑回归
import numpy as npimport random#梯度下降函数def gradientDescent(x, y, theta, alpha, m, numIterations): #alpha:学习率,m实例个数,numIterations更新次数 xTrans = x.transpose() #对矩阵转置 for i in range(0,...
2019-03-17 17:56:09
232
原创 机器学习sklearn(2)多元线性回归
from numpy import genfromtxtimport numpy as npfrom sklearn import datasets, linear_modeldatapath = r"C:\Users\meachine learn\delivery.csv"#skip_header=0和skip_footer=0,表示不跳过任何行。deliverydata = gen...
2019-03-17 17:50:16
813
原创 机器学习sklearn(3)多项式回归
import numpy as npimport matplotlib.pyplot as pltfrom sklearn.preprocessing import PolynomialFeaturesfrom sklearn.linear_model import LinearRegressionfrom sklearn.metrics import mean_squared_error...
2019-03-15 18:02:43
601
原创 机器学习sklearn(1)简单线性回归
本次练习主要涉及到知识点有:数据读取、画散点图、数据预处理、模型调用、模型评估,流程如下:引入库import matplotlib.pyplot as pltimport pandas as pdfrom sklearn.linear_model import LinearRegressionfrom sklearn.model_selection import cross_va...
2019-03-14 20:28:21
421
原创 用Python爬取某网站小说
最近看到身边不少朋友在看电子书,想到自己接触Python爬虫也有段时间了,于是就决定找篇小说来练练手,哈哈哈。在某小说网随便找了一篇,首先看下要爬取的小说页码有没有什么规律,http://book.zongheng.com/chapter/774770/43742964.htmlhttp://book.zongheng.com/chapter/774770/43764713.htmlh...
2019-03-10 16:41:48
1732
转载 调和平均数的几何意义
调和平均数的代数形式(通俗): 应用场景:样本自变量(身高)和因变量(胖瘦)的乘积相等的情况下,改变每个样本的因变量(胖瘦),而不改变因变量的总和(井宽),所得自变量为调和平均数。上图也可以看成中速,慢速,快速,跑3个100米,x轴是时间,y轴是速度,xy的积是路程,每份面积相等符合上方应用场景。还有网上其它资料显示:调和平均数...
2019-03-07 10:10:25
9909
原创 用sklearn.preprocessing做数据预处理(六)——非线性特征
有时候线性的特征并不能做出完美的图形,这时候我们会尝试非线性。比如,将特征进行多项式展开import numpy as npfrom sklearn.preprocessing import PolynomialFeaturesx = np.arange(6).reshape(3,2)xarray([[0, 1], [2, 3], [4, 5]])...
2019-03-02 17:18:30
413
原创 用sklearn.preprocessing做数据预处理(五)——缺失数据
在scikit-learn的模型中都是假设输入的数据是数值型的,并且都是有意义的。但如果有缺失数据是通过NAN或者空值来表示的话,就无法识别与计算了。要弥补缺失值可以使用均值、中位数、众数等。Imputer这个类可以实现。import numpy as npfrom sklearn.preprocessing import Imputerimp = Imputer(missing_valu...
2019-03-02 17:18:21
617
原创 用sklearn.preprocessing做数据预处理(四)——OneHotEncoder
机器学习时,对于离散的特征基本就是按照one-hot(独热)编码,该离散特征有多少取值,就用多少维来表示该特征。from sklearn import preprocessingenc = preprocessing.OneHotEncoder()enc.fit([[0, 0, 3], [1, 1, 0], [0, 2, 1], [1, 0, 2]]) # fit来学习编码enc....
2019-03-02 17:18:09
6115
原创 用sklearn.preprocessing做数据预处理(三)——二值化
特征的二值化是指将数值型的特征数据转换成布尔型的值,可以使用类Binarizer默认是根据0来二值化,大于0的都标记为1,小于等于0的标记为0from sklearn import preprocessingimport numpy as npx = np.array([[1.,-1.,2.], [2.,0.,0.], [0.,1.,...
2019-03-02 17:17:57
860
原创 用sklearn.preprocessing做数据预处理(二)——Normalization
Normalization(正则化,也有部分地方叫归一化,至于哪个翻译更准确这里不做讨论,暂且称作正则化)是将样本在向量空间模型上的一个转换,经常被使用在分类与聚类中函数normalize提供了一个快速又简单的方式在一个单向量上来实现这正则化的功能。正则化有l1,l2等,这些都可以用上from sklearn import preprocessingimport numpy as np...
2019-03-02 17:17:24
3257
原创 用sklearn.preprocessing做数据预处理(一)——Standardization
Standardization标准化:将特征数据的分布调整成标准正态分布,亦叫高斯分布,也就是使得数据的均值为0,方差为1标准化的原因在于如果有些特征的方差过大,则会主导目标函数,从而使参数估计器无法正确地学习其他特征标准化的过程为两步:去均值的中心化(均值变为0);方差的规模化(方差变为1)。在sklearn.preprocessing中提供了一个scale的方法,可以实现以上功能。...
2019-03-02 17:16:26
525
原创 高斯分布的应用
高斯分布有什么作用呢? 首先,如果在统计过程中发现一个样本呈现高斯分布的特性,只需要把样本总数量、和表达出来,就已经能够形成一个完整的画面感了。这对人们描述对象是有很大帮助的。 还有一个好处,就是我们发现了这样一个特性后,在生产制造、商业等领域会有很多对应性的用法能够减少不必要的投入或损失。例如,在设计一款服装后,S/M/L/XL这些号码怎么设计比较合理呢?设计...
2019-03-01 09:40:06
3221
原创 以城市编码+月份为种子生成指定范围内随机数
用过python中random的人都知道很容易生成随机数,但是通常程序运行一次随机数就变动一次,在某些特定情况下我们不希望程序再次运行时这些随机数发生变化。比如我们希望生成全国各城市12个月份的某项指标数据集,在这里我们可以根据(城市编码+月份)作为随机数种子来生成随机数,这样当不管程序运行多少次,这个数据集都不在变动。import numpy as npimport randomimpo...
2019-02-25 23:10:11
287
原创 无中生有——利用sklearn.datasets生成数据
我们做模型练习时候经常会苦恼没有数据集,正所谓巧妇难为无米之炊,但是有了sklearn.datasets,这都不是事儿!代码如下:import matplotlib.pyplot as pltfrom sklearn.datasets import make_classificationfrom sklearn.datasets import make_blobsfrom sklea...
2019-02-20 22:35:36
2235
原创 扫福字,集五福——用python制作个性化词云
春节马上到了,又到了集五福的时候。身边没有福字怎么办?往年都是手写来扫,今天脑洞大开,何不试试生成“福”字形的词云,来扫扫看呢?哈哈哈,说干就干:1、先在网上随便搜了几篇关于怎么集福的文章,然后保存在wufu.txt文件里;2、读取wufu.txt文件,调用jieba进行分词并将结果保存在wufu中;3、百度一张福字图片,抠图保存成白色背景png格式;4、以第三步保存的福字为背景调...
2019-01-31 14:40:43
2132
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人