python机器学习

机器学习研究与开发平台的选择

北城以北 提交于 2020-02-22 00:01:03
    目前机器学习可以说是百花齐放阶段,不过如果要学习或者研究机器学习,进而用到生产环境,对平台,开发语言,机器学习库的选择就要费一番脑筋了。这里就我自己的机器学习经验做一个建议,仅供参考。     首先,对于平台选择的第一个问题是,你是要用于生产环境,也就是具体的产品中,还是仅仅是做研究学习用? 1. 生产环境中机器学习平台的搭建     如果平台是要用于生产环境的话,接着有一个问题,就是对产品需要分析的数据量的估计,如果数据量很大,那么需要选择一个大数据平台。否则的话只需要一个单机版的平台就可以了。 1.1 生产环境中机器学习大数据平台的搭建     生产环境里面大数据平台,目前最主流的就是Spark平台,加上辅助的分布式数据处理容器,比如YARN,或者Mesos.如果需要实时的收集在线数据,那么就加上Kafka。简言之,一个通用的大数据处理平台就是集成Spark + YARN(Mesos) + Kafka. 我现在做的产品项目都是基于Spark + YARN+ Kafka的,目前来看,这个平台选择基本上是主流的方向。     当然,有人会说,这么多开源软件,一起集成起来好麻烦,大坑肯定不少,有没有一个通用的平台,可以包括类似Spark + YARN+ Kafka的大数据平台功能呢?目前据我所知,做的比较好的有CDAP(http://cdap.io)。它对Spark,

机器学习数据集汇总

ぐ巨炮叔叔 提交于 2020-02-21 11:12:12
来源:机器学习算法与Python实战 本文 多干货 ,建议 收藏 本文为你汇总机器学习相关数据集。 大学公开数据集 (Stanford)69G大规模无人机(校园)图像数据集【Stanford】 http://cvgl.stanford.edu/projects/uav_data/ 人脸素描数据集【CUHK】 http://mmlab.ie.cuhk.edu.hk/archive/facesketch.html 自然语言推理(文本蕴含标记)数据集【NYU】 https://www.nyu.edu/projects/bowman/multinli/ Berkeley图像分割数据集BSDS500【Berkeley】 https://www2.eecs.berkeley.edu/Research/Projects/CS/vision/grouping/resources.html 宠物图片(分割)数据集【Oxford】 http://www.robots.ox.ac.uk/~vgg/data/pets/ 发布ADE20K场景感知/解析/分割/多目标识别数据集【MIT】 https://groups.csail.mit.edu/vision/datasets/ADE20K/ 多模态二元行为数据集【GaTech】 http://www.cbi.gatech.edu/mmdb/ 计算机视觉/图像

机器学习-随机森林(Random Forest)

人盡茶涼 提交于 2020-02-21 01:17:44
Section I: Brief Introduction on Random Forest Random forests have gained huge popularity om applications of machine learning during the last decade due to their good classification performance,scalability, and ease of use . Intuitively, a random forest can be considered as an ensemble of decoson trees. The idea behind a random forest is to average multiple trees that individually suffer from high variance, to build a more robust model that has a better generalization performance and is less susceptible to overfitting. The major steps are summarized here: Step 1: Draw a random boostrap sample

机器学习-随机森林(Random Forest)

我是研究僧i 提交于 2020-02-20 22:24:13
Section I: Brief Introduction on Random Forest Random forests have gained huge popularity om applications of machine learning during the last decade due to their good classification performance,scalability, and ease of use . Intuitively, a random forest can be considered as an ensemble of decoson trees. The idea behind a random forest is to average multiple trees that individually suffer from high variance, to build a more robust model that has a better generalization performance and is less susceptible to overfitting. The major steps are summarized here: Step 1: Draw a random boostrap sample

机器学习-随机森林(Random Forest)

会有一股神秘感。 提交于 2020-02-20 19:56:55
Section I: Brief Introduction on Random Forest Random forests have gained huge popularity om applications of machine learning during the last decade due to their good classification performance,scalability, and ease of use . Intuitively, a random forest can be considered as an ensemble of decoson trees. The idea behind a random forest is to average multiple trees that individually suffer from high variance, to build a more robust model that has a better generalization performance and is less susceptible to overfitting. The major steps are summarized here: Step 1: Draw a random boostrap sample

机器学习:IDE3决策树(原理+python实现)

为君一笑 提交于 2020-02-19 12:08:45
不管对决策树的知识了解有多少,这次通过一个简单的例子来就能够了解它的原理和明白实现的方法。 实际场景 对于一个眼科医生而言,当面对病人是否需要佩戴隐形眼镜时,只需要通过几个问题就能够判断出病人是需要带软,硬还是不能带隐形眼镜。因此我们的数据集就是病人的四个特征(‘age’, ‘prescript’, ‘astigmatic’, 'tearRate’)的组合以及对应的结论(‘soft’,‘hard’,‘no lenses’),获取数据 点击这里 ,提取码tvj6 先加载数据,如下: # 加载数据 def loadData ( ) : bigString = open ( r '路径\lenses.txt' , 'r' ) dataMat = [ ] for line in bigString : curLine = line . strip ( ) . split ( '\t' ) dataMat . append ( curLine ) return dataMat 那么接下来看看关于这个问题的决策树是怎样的一个结构。 可以看出,医生通过不断地问一些问题,最后对病人做出结论,那么决策树的构建过程,实际上就是不断寻找最佳特征的过程,使得数据集每一个样本都能够在决策树上体现出来,对于IDE3决策树而言,指的就是用IDE3方法来筛选出最佳特征,关于IDE的计算方法,这里不再详细去讲

python机器学习:推荐系统实现(以矩阵分解来协同过滤)

我们两清 提交于 2020-02-17 15:21:28
原文链接: http://tecdat.cn/?p=10911 用户和产品的潜在特征编写推荐系统矩阵分解工作原理使用潜在表征来找到类似的产品。 1. 用户和产品的潜在特征 我们可以通过为每个用户和每部电影分配属性,然后将它们相乘并合并结果来估计用户喜欢电影的程度。 ​ 相同的计算可以表示为矩阵乘法问题。首先,我们把用户属性放在一个名为U的矩阵中,在这个例子中是5,-2,1,-5和5。然后,我们把电影属性放在一个名为M的矩阵中,我们使用矩阵乘法来找出用户的评分。 ​ 但要做到这一点,我们必须已经知道用户属性和电影属性。为每个用户和每部电影提供属性评级并不容易。我们需要找到一种自动的方法。我们来看看电影评分矩阵, ​ 它显示了我们数据集中的所有用户如何评价电影。这个矩阵非常稀疏,但它给了我们很多信息。例如,我们知道用户ID2给电影1号五颗星。所以,基于此,我们可以猜测,这个用户的属性可能类似于电影的属性,因为它们匹配的很好。换句话说,我们有一些线索可以使用。 让我们看看我们如何利用这些线索来了解每部电影和每个用户。在我们刚刚看到的等式中,U乘M等于电影等级,我们已经知道一些用户的实际电影等级。我们已经拥有的电影评分矩阵是我们方程式的解决方案。虽然它是解决方案的一部分,但是这个阵列仍然有很多漏洞,但对于我们来说,这已经足够了。 ​ 实际上,我们可以使用目前为止我们所知道的电影评级

机器学习之随机森林(python调参)

余生颓废 提交于 2020-02-14 17:58:11
原理 随机森林的原理即将多个决策树放到一起做决断。 决策树原理详见: 机器学习之决策树原理 。 森林:建立多个决策树放到一起,形成一个森林,将测试数据依次输入这多个决策树,得到最终结果。假设有三棵树,输入测试数据后依次得到1,1,0,那么对于分类问题来说,得到的结果为1;对于回归问题来说,得到的结果可以是平均数0.67。 随机: 1、样本的选择随机性:假设有从1到10共十个样本,从这个样本中有放回地抽取六个样本,用这六个样本建立第一个决策树,而不是用所有的样本,这样可以避免过拟合。像以上这样取十次,建立十个决策树,则构成了一个随机森林。 2、特征的选择随机性:像之前的那个例子一样,不一定哪个特征对最终结果有利或有害,所以构建每个决策树时并不用到所有特征,而是无放回地抽取其中几个特征。比如从总的八个特征中选出六个特征参与某个决策树的构建。 python实现 1、导入需要的库 from sklearn . datasets import load_breast_cancer from sklearn . ensemble import RandomForestClassifier from sklearn . model_selection import GridSearchCV from sklearn . model_selection import cross_val_score

[python机器学习及实践(6)]Sklearn实现主成分分析(PCA)

大憨熊 提交于 2020-02-14 03:41:37
1.PCA原理 主成分分析(Principal Component Analysis,PCA), 是一种统计方法。通过正交变换将一组可能存在相关性的变量转换为一组线性不相关的变量,转换后的这组变量叫主成分。 PCA算法: 2.PCA的实现 数据集: 64维的手写数字图像 代码: #coding=utf-8 import numpy as np import pandas as pd from sklearn.decomposition import PCA from matplotlib import pyplot as plt from sklearn.svm import LinearSVC from sklearn.metrics import classification_report #1.初始化一个线性矩阵并求秩 M = np.array([[1,2],[2,4]]) #初始化一个2*2的线性相关矩阵 np.linalg.matrix_rank(M,tol=None) # 计算矩阵的秩 #2.读取训练数据与测试数据集。 digits_train = pd.read_csv('https://archive.ics.uci.edu/ml/machine-learning-databases/optdigits/optdigits.tra', header=None)

零基础入门篇使用Python搭建点击率预估模型

坚强是说给别人听的谎言 提交于 2020-02-12 03:48:59
本文将从零开始,仅仅利用基础的numpy库,使用Python实现一个最简单的神经网络(或者说是简易的LR,因为LR就是一个单层的神经网络),解决一个点击率预估的问题。感兴趣的朋友跟随小白一起看看吧 点击率预估模型 0.前言 本篇是一个基础机器学习入门篇文章,帮助我们熟悉机器学习中的神经网络结构与使用。 日常中习惯于使用Python各种成熟的机器学习工具包,例如sklearn、TensorFlow等等,来快速搭建各种各样的机器学习模型来解决各种业务问题。 本文将从零开始,仅仅利用基础的numpy库,使用Python实现一个最简单的神经网络(或者说是简易的LR,因为LR就是一个单层的神经网络),解决一个点击率预估的问题。 1.假设一个业务场景 声明:为了简单起见,下面的一切设定从简…. 定义需要解决的问题: 老板:小李,这台机器上有一批微博的点击日志数据,你拿去分析一下,然后搞点击率预测啥的… 是的,就是预测一篇微博是否会被用户点击(被点击的概率)……预测未来,貌似很神奇的样子! 热门微博 简单的介绍一下加深的业务数据 每一条微博数据有由三部分构成: {微博id, 微博特征X, 微博点击标志Y} 微博特征X有三个维度: X={x0="该微博有娱乐明星”,x1="该微博有图”,x2="该微博有表情”} 微博是否被点击过的标志Y: Y={y0=“点击”, y1=“未点击”} 数据有了