
python
文章平均质量分 54
Lenskit
数据分析8年+
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
mac安装xgboost方法(最简单方式)
百度上使用brew install llvm, brew install clang-omp,再pip install xgboost的方法,试了不行。还有要下载安装包,升级gcc 的方式,也没有安装成功。最后使用conda install py-xgboost命令,期间出现报错:RemoveError: 'requests' is a dependency of conda and cannot be removed from conda's operating environment.,使.原创 2020-11-03 16:38:56 · 1283 阅读 · 2 评论 -
Python机器学习及实践——基础篇10(K近邻回归)
在基础篇5中提到里这类模型不需要训练参数的特点。在回归任务重,k近邻(回归)模型同样只是借助周围K个最近训练样本的目标数值,对待测样本的回归值进行决策。自然,也衍生出衡量待测样吧回归值的不同方式,即到底是对K个近邻目标数值使用普通的算术平均算法,还是同时考虑距离的差异进行加权平均。因此,本篇也初始化不同配置的K近邻(回归)模型来比较回归性能的差异。 下述代码展示了如何使用两种不同配置...原创 2018-06-23 20:48:02 · 1722 阅读 · 0 评论 -
Python机器学习及实践——基础篇9(SVM回归)
大家应该对基础篇3中的支持向量机(分类)中提到的分类模型的作用机理有所了解。本篇介绍的支持向量机(回归)也同样是从训练数据中选取一部分更加有效的支持向量,只是这少部分的训练样本所提供的并不是类别目标,而是具体的预测数值。 我们继续使用上一篇分割处理好的训练和测试数据;同时我们第一次修改模型初始化的默认配置,以展现不同配置下模型性能的差异,也为后面要介绍的内容做个铺垫。# 从sklea...原创 2018-06-23 20:28:24 · 11448 阅读 · 1 评论 -
Python机器学习及实践——基础篇8(LinerR和SGD)
回归问题与分类问题的区别在于:期待预测的目标是连续变量,比如:价格、降水量等等。与前面的介绍方式不同,这里不会对回归的应用场景进行横向扩展;而是只针对一个“美国波士顿地区房价预测”的经典回归问题进行分析,好让读者朋友对各种回归模型的性能与优缺点有一个深入的比较。 前面介绍过分类的线性模型。其中为了便于将原本在实数域上的计算结果映射到(0,1)区间,引入了逻辑斯蒂函数。而在线性回归问题...原创 2018-03-28 20:25:35 · 2262 阅读 · 4 评论 -
Python机器学习及实践——基础篇7(分类集成模型)
常言道:“一个篱笆三个桩,一个好汉三个帮”。集成分类模型便是综合考量多个分类器的预测结果,从而做出决策。只是这种“综合考量”的方式大体上分为两种: 一种是利用相同的训练数据同时搭建多个独立的分类模型,然后通过投票的方式,以少数服从多数的原则作出最终的分类决策。比较具有代表性的模型为随机森林分类器,即在相同训练数据上同时搭建多颗决策树。然而上一篇中提到过,一株标准的决策树会根据每维特征...原创 2018-03-25 21:05:36 · 2300 阅读 · 0 评论 -
Python机器学习及实践——基础篇6(决策树)
前面所使用的逻辑斯蒂回归和支持向量机模型,都在某种程度上要求被学习的数据特征和目标之间遵照线性假设。然而,在许多现实场景下,这种假设是不存在的。 比如,要借由一个人的年龄来预测患流感的死亡率。如果采用线性模型假设,那只有两种情况:年龄越大死亡率越高;或者年龄越低死亡率越高。然而根据常识判断,青壮年因为更加健全的免疫系统,相较于儿童和老年人不容易因患流感而死亡。因此年龄与因流感而死之间...原创 2018-03-25 19:57:46 · 964 阅读 · 0 评论 -
python连接oracle报错CX_oracle解决方法
使用的python2.7 64位,但公司的oracle client是32位,连接时报错。 解决方法:1. 下载合适的oracle客户端,也就是64位的客户端;2. 解压到上层一点的目录,例如C:\oracle\instantclient_12_2;3. 把目录加到环境变量path中,如果有多个oracle环境变量,把它加到最前面;4. (非必须)下载安装正确的Visual Stu...原创 2018-03-22 18:52:25 · 4098 阅读 · 3 评论 -
Python机器学习及实践——基础篇1
机器学习中监督学习模型的任务重点在于,根据已有经验知识对未知样本的目标/标记进行预测。根据目标预测变量的类型不同,我们把监督学习任务大体分为分类学习与回归预测两类。 整理一下监督学习任务的基本架构和流程:首先准备训练数据,可以是文本、图像、音频等;然后抽取所需要的特征,形成特征向量;接着,把这些特征向量连同对应的标记/目标一并送入学习算法中,训练出一个预测模型;然后采用同样的特征抽取方法作用于原创 2018-01-20 19:59:00 · 1420 阅读 · 0 评论 -
Python机器学习及实践——基础篇5(K近邻)
K近邻模型本身非常直观并且容易理解。算法描述起来也很简单,如下图所示。假设我们有一些携带分类标记的训练样本,分布于特征空间中;蓝色、绿色的样本各自代表其类别。对于一个待分类的红色测试样本点,未知其类别,按照成语“近朱者赤,近墨者黑”的说法,我们需要寻找与这个待分类的样本在特征空间中距离最近的K个已标记样本作为参考,来帮助我们做出分类决策。这便是K近邻算法的通俗解释。而在下图中,如果我们根据最近的K原创 2018-02-04 15:57:43 · 711 阅读 · 0 评论 -
python——pandas的pivot_table使用
提供给我的输入是几个文本,读取为dataframe格式之后如下(此处只列出两个文本的模拟内容)In[179]: t1Out[178]: id value1 value20 1 100 981 2 98 872 3 97 933 4 96 964 5 99原创 2017-11-27 16:45:05 · 12777 阅读 · 1 评论 -
Python机器学习及实践——基础篇4(朴素贝叶斯)
模型介绍:朴素贝叶斯是一个非常简单,但是实用性很强的分类模型。不过,和上述两个基于线性假设的模型(线性分类器和支持向量机分类器)不同,朴素贝叶斯分类器的构造基础是贝叶斯理论。 朴素贝叶斯分类器会单独考量每一维度特征被分类的条件概率,进而综合这些概率并对其所在的特征向量做出分类预测。因此,这个模型的基本数学假设是:各个维度上的特征被分类的条件概率之间是相互独立的。具体的贝叶斯公式网上有很多,这里原创 2018-02-04 14:00:14 · 800 阅读 · 0 评论 -
Python机器学习及实践——基础篇3(SVM)
图中有三种颜色的线,用来划分这两种类别的训练样本。其中绿色直线H1在这些训练样本上表现不佳,本身就带有分类错误;蓝色直线H2和红色直线H3如果作为这个二分类问题的线性分类模型,在训练集上的表现都是完美的。 然而,由于这些分类模型最终都是要应用在未知分布的测试数据上,因此我们更加关注如何最大限度地为未知分布的数据提供足够的待预测空间。比如如果有一个黑色样本稍稍向右偏离橙色直线,那么这个黑色样本很原创 2018-02-03 15:59:07 · 1182 阅读 · 0 评论 -
Python机器学习及实践——基础篇2(LR和SGD)
使用线性分类模型从事良/恶性肿瘤预测任务# 从sklearn.preprocessing里导入StandardScaler。from sklearn.preprocessing import StandardScaler# 从sklearn.linear_model里导入LogisticRegression与SGDClassifier。from sklearn.linear_m...原创 2018-02-03 14:01:54 · 3359 阅读 · 1 评论 -
python——dataframe向下向上填充,fillna和ffill
首先新建一个dataframe:In[8]: df = pd.DataFrame({'name':list('ABCDA'),'house':[1,1,2,3,3],'date':['2010-01-01','2010-06-09','2011-12-03','2011-04-05','2012-03-23']})In[9]: dfOut[9]: date hou原创 2017-12-01 17:30:03 · 39868 阅读 · 0 评论 -
python——当groupby遇到匿名函数
开发过程中遇到这样一种场景,dataframe按一列groupby之后,要对多列进行不同的操作。例如:In[25]: dfOut[25]: name price size0 A 100 M1 A 90 S2 B 100 M3 B 110 M4 B 120 L5 C原创 2017-11-30 18:05:18 · 1812 阅读 · 0 评论 -
leetcode05 Longest Palindromic Substring 最长回文子串
leetcode05 Longest Palindromic Substring 最长回文子串原创 2017-11-06 15:54:27 · 1603 阅读 · 0 评论 -
Python机器学习及实践——基础篇12(集成模型)
在之前的集成模型(分类)中,探讨过集成模型的大致类型和优势。本篇除了继续使用普通随机森林和提升树模型的回归器版本外,还要补充介绍随机森林模型的另一个变种:极端随机森林。与普通的随机森林模型不同的是,极端随机森林在每当构建一棵树的分裂节点的时候,不会任意地选取特征;而是先随机收集一部分特征,然后利用信息熵和基尼不纯性等指标调休最佳的节点特征。本篇使用sklearn中三种集成回归模型,即Rando...原创 2018-10-20 16:59:55 · 752 阅读 · 0 评论 -
Python机器学习及实践——基础篇11(回归树)
回归树在选择不同特征作为分裂节点的策略上,与基础篇6的决策树的思路类似。不同之处在于,回归树叶节点的数据类型不是离散型,而是连续型。决策树每个叶节点依照训练数据表现的概率倾向决定了其最终的预测类;而回归树的叶节点确实一个个具体的值,从预测值连续这个意义上严格地讲,回归树不能成为“回归算法”。因为回归树的叶节点返回的是“一团”训练数据的均值,而不是具体的,连续的预测值。下面使用回归树对美国波士顿...原创 2018-10-20 11:07:00 · 1458 阅读 · 0 评论 -
记录——python将一行的文本拆成多行
https://zhuanlan.zhihu.com/p/28337202非常有用,记录。转载 2018-10-29 17:23:08 · 6295 阅读 · 0 评论 -
Python机器学习及实践——进阶篇6(超参数搜索)
前面所提到的模型配置,我们一般统称为模型的超参数,如K近邻算法中的K值 支持向量机中不同的和函数等。多数情况下,超参数的选择是无限的。因此在有限的时间内,除了可以验证人工预设几种超参数组合以外,也可以通过启发式的搜索方法对超参数组合进行调优。我们称这种启发式的超参数搜索方法为网格搜索。同时由于超参数的的验证过程之间彼此独立,因此为并行计算提供了可能。网格搜索:由于超参数的空间是无尽的,因此超...原创 2019-08-18 19:01:50 · 1586 阅读 · 2 评论 -
Python机器学习及实践——进阶篇5(模型检验)
前面时不时提到模型检验或者交叉验证等词汇,特别是在对不同模型的配置,不同的特征组合,在相同的数据和任务下进行评价的时候。究其原因是因为仅仅使用默认配置的模型与不经处理的数据特征,在大多数任务下是无法得到最佳性能表现的。因此在最终交由测试集进行性能评估之前,我们希望可以利用手头现有的数据对模型进行调优,甚至可以粗略地估计测试结果。这里需要强调的是,前面所使用的测试数据是由原始数据中采样而来,并且...原创 2019-08-18 18:59:02 · 1735 阅读 · 0 评论 -
Google OR-Tools简介
组合优化可以用来从很多可能解中寻找到问题的最佳解。比如下面这些例子:一、车辆路线:为在给定限制条件下提取和交付包裹的车队找到最佳路线(例如,“此卡车不能承载超过20000磅”或“所有交付必须在两小时内完成”)。二、调度:为一组复杂的任务找到最佳的调度,其中一些任务需要先于其他任务在一组固定的机器或其他资源上执行。三、装箱:尽可能多地将各种尺寸的物品装入存放固定数量以及有最大承重的箱...原创 2019-07-05 16:05:45 · 3604 阅读 · 0 评论 -
Python机器学习及实践——进阶篇4(模型正则化之L1正则&L2正则)
正则化的目的在于提高模型在未知测试数据上的泛化力,避免参数过拟合。由上一篇的例子可以看出,2次多项式回归是相对较好的模型假设。之所以出现如4次多项式那样的过拟合情景,是由于4次方项对于的系数过大,或者不为0导致。因此正则化的常见方法都是在原模型优化目标的基础上,增加对参数的惩罚项。以我们之前在线性回归器一节中介绍过的最小二乘优化目标为例,如果加入对模型的L1范数正则化,那么新的线性回归目标如下...原创 2019-05-26 18:06:31 · 1874 阅读 · 0 评论 -
Python机器学习及实践——进阶篇3(模型正则化之欠拟合与过拟合)
一个需要记住的重要事项:任何机器学习模型在训练集上的性能表现,都不能作为其对未知测试数据预测能力的评估。这里讲详细及时什么是模型的泛化力以及如何保证模型的泛化力,一次会阐述模型复杂度与泛化力的关系以及使用L1范数正则化与L2范数正则化加强模型的泛化力,避免模型参数过拟合。所谓拟合,是指机器学习模型在训练的过程中,通过更新参数,使得模型不断契合训练集的过程。本篇将使用一个“比萨饼价格预...原创 2019-05-26 11:13:39 · 1246 阅读 · 0 评论 -
Python机器学习及实践——进阶篇2(特征提升之特征筛选)
总体来说,良好的数据特征组合不需太多,便可以使得模型的性能表现突出。比如我们在“良/恶性乳腺癌肿瘤预测“问题中,仅仅使用两个描述肿瘤形态的特征便取得较高的识别率。冗余的特征虽然不会影响模型性能,但会浪费cpu的计算。主成分分析主要用于去除多余的那些线性相关的特征组合,这些冗余的特征组合并不会对模型训练有更多贡献。特征筛选与PCA这类通过选择主成分对特征进行重建的方法略有区别:对于PCA而言,我...原创 2019-05-26 10:46:47 · 2141 阅读 · 0 评论 -
Python机器学习及实践——进阶篇1(特征提升之特征抽取)
在前面的一系列文章中,已经介绍了大量经典的机器学习模型,并且使用python语言分析这些模型在许多不同现实数据上的性能表现。细心的读者会发现一个问题,我们之前使用的数据几乎都经过了规范化处理,而且模型也大多只是采用了默认的初始化配置。换言之,尽管我们使用经过处理后的数据,在默认配置下学得一套可以拟合数据的参数,并用这些参数和默认配置取得了一些看似良好的性能表现;但是我们无法解决最为关键的问题:实际...原创 2019-03-23 13:10:01 · 1305 阅读 · 0 评论 -
用TensorFlow来实现梯度下降
本篇我们尝试使用批量梯度下降。首先我们将通过手动计算梯度来实现,然后使用TensorFlow的自动扩展功能来使TensorFlow自动计算梯度,最后我们将使用几个TensorFlow的优化器。使用梯度下降时,首先要对输入特征向量进行归一化,否则训练会慢很多,可以使用TensorFlow,numpy,sklearn的standardscaler或其他解决方案,下面的代码会假定此规范化已经完成...原创 2019-03-19 20:22:55 · 795 阅读 · 0 评论 -
运行你的第一个TensorFlow程序
如果你已经安装了anaconda,可以直接使用pip来安装TensorFlow。安装命令:pip install --upgrade tensorflow如果你有gpu,需要安装tensorflow-gpu而不是tensorflow。运行下面的命令来测试是否安装成功:python -c 'import tensorflow;print(tensorflow.__version_...原创 2019-03-06 10:47:24 · 2602 阅读 · 1 评论 -
python使用graphviz工具画图
本示例数据集为鸢尾花数据集,运行后会生成两个文件,一个是iris,一个是iris.pdf。from sklearn.datasets import load_irisfrom sklearn.tree import DecisionTreeClassifierfrom sklearn.tree import export_graphvizimport graphviziris = ...原创 2019-02-28 16:56:03 · 3302 阅读 · 0 评论 -
Python机器学习及实践——特征降维
特征降维是无监督学习的另一个应用,目的有两个:一是我们经常在实际项目中遭遇特征维度非常高的训练样本,而往往无法借助自己的领域知识人工构建有效特征;二是在数据表现方面,我们无法用肉眼观测超过三个维度的特征。因此特征降维不仅重构了有效的低维度特征向量,同时也为数据展现提供了可能。PCA是最为经典和实用的特征降维技术,特别在辅助图形识别方面有突出的表现。本篇我们依然沿用上篇的“手写体数字图像”全集数...原创 2018-12-16 13:04:11 · 3318 阅读 · 0 评论 -
代码测试通过,振奋人心的消息!
效果图:代码如下:print(""" ,@@@@@@@@@@,,@@@@@@@% .#&@@@&&.,@@@@@@@@@@, %@@@@@@%* ,@@@% .#&@@@&&. *&@@@@&( ,@@@@@@@% %@@@@@, ,@@, ...原创 2018-12-07 11:18:59 · 420 阅读 · 0 评论 -
用python连接hive和presto并进行查询和插入
安装pyhive,连接presto并用pandas读取:import pandas as pdfrom sqlalchemy.engine import create_enginefrom pyhive import hive# 准备语句sql = "select * from table"engine1 = create_engine('presto://ip:port/...原创 2018-12-12 15:51:39 · 10264 阅读 · 3 评论 -
Python机器学习及实践——无监督学习经典模型(K-means)
无监督学习着重于发现数据本身的分布特点。与监督学习不同,无监督学习不需要对数据进行标记。从功能角度讲,无监督学习模型可以帮助我们发现数据的“群落”,同时也可以寻找“离群”的样本;另外对于特征维度非常高的数据样本,我们同样可以通过无监督的学习对数据进行降维,保留最具有区分性的低纬度特征。数据聚类是无监督学习的主流应用之一,最为经典并且易用的聚类模型,要属K均值算法。该算法要求我们预先设定聚类...原创 2018-11-17 19:27:53 · 3042 阅读 · 0 评论 -
leetcode03 Longest Substring Without Repeating Characters 最长不重复子串
leetcode03 Longest Substring Without Repeating Characters 最长不重复子串原创 2017-11-06 15:46:20 · 1611 阅读 · 0 评论 -
leetcode04 Median of Two Sorted Arrays 两个已排序数组的中位数
leetcode04 Median of Two Sorted Arrays 两个已排序数组的中位数原创 2017-11-06 15:51:11 · 1544 阅读 · 0 评论 -
python——python连接oracle数据库,并且比较数据之间的差别
前几天同事问我一个问题,如何找出两份数据之间的不一样的值。这样描述问题不太好理解,举个例子:两份数据是从oracle中两个不同的表读出来的,两份数据均有四个字段,其中两个字段是相同的:日期和代码,另外两个字段名字不同,但代表的含义是一致的,都是代表最高价和最低价。现在想要找出两份数据相同日期和代码的记录是否最高价和最低价一致,有不一致的就找出来。原创 2017-07-19 18:20:33 · 1835 阅读 · 0 评论 -
python——快速读取excel文件并插入数据库
写一个小功能。快速读取excel文件并插入数据库原创 2017-07-19 14:25:18 · 3772 阅读 · 1 评论 -
python——双重列表推导式+函数,优雅而强大
看书的过程中,看到了这种精妙(书里译文如此)的用法。列表推导式+函数。原创 2017-07-07 18:33:04 · 16711 阅读 · 0 评论 -
使用python读取csv文件快速插入数据库
使用python读取csv文件并插入数据库,超快原创 2017-07-03 18:54:09 · 7373 阅读 · 1 评论 -
python——使用map快速匹配字典的key
使用map快速匹配字典的key原创 2017-07-04 10:17:39 · 13736 阅读 · 0 评论