——机器学习——
文章平均质量分 79
STILLxjy
不要让任何人打乱你生活的节奏
展开
-
(吴恩达机器学习)初识机器学习
机器学习的定义:计算机程序从经验E中学习,解决某一任务T,进行某一性能度量P,通过P,测定在T上的表现因经验E而提高。例如机器下棋和邮件分类。 (1)对于下棋而言, E:通过学习棋谱和模拟下棋,提高经验 T:任务为下赢此棋局 P:下赢棋局的概率(2)对于邮件分类而言, E:用户标记某些邮件为垃圾邮件 T:任务为正确分类垃圾邮件和合格邮件 P:邮件分类的正确率机器学习主...原创 2018-05-14 22:57:00 · 402 阅读 · 0 评论 -
[实战] 逻辑回归分类算法
逻辑回归算法是将数据样本分为两类0:1假设输入样本为向量x,我们希望求解出最佳的参数向量w使得 sigmoid(w’x) 可以很好的将数据划分,其中sigmoid函数如下所示,w’表示w的转置实现方法:随机初始化待求解参数w使用梯度上升(或梯度下降)算法,迭代求解局部最优值:代码实现:(1)加载数据:from numpy import *def loadDataSet()...原创 2019-05-16 13:39:08 · 408 阅读 · 0 评论 -
[实战] 树回归算法
全局建模的不足:线性回归算法,在全局上拟合所有的样本,使得整体上误差最小。但是当数据有众多的特征并且特征之间的关系十分复杂时,建立全局模型的想法就显得十分的困难,并且效果也不会太好。在实际生活中,很多问题都是非线性的,不可能使用全局线性模型来拟合任意的数据。局部性建模:对于一些复杂的非线性的数据,我们可以将数据切分成很多分易建模的数据,然后再各个子段分别使用模型进行建模。基于决策树的想...原创 2019-05-22 17:07:06 · 386 阅读 · 0 评论 -
[实战] K-means算法 & 二分K-means算法
K-means算法:K-means算法是一个被广泛使用且简单的无监督算法。K-means算法将数据分为k个簇类,使得每个簇类内部数据尽可能的相似,而簇之间的数据尽可能的不同。K-means算法中的簇类数目为k,是用户认为给定的。算法流程:K-means代码:from numpy import *#加载数据def loadDataSet(fileName): #gene...原创 2019-05-22 21:15:04 · 939 阅读 · 0 评论 -
[实战] AdaBoost元算法
理论原理:在机器学习中,有多种分类算法,每一种分类算法都有各自的优缺点。为了提高模型的准确度,我们可以将多个分类器组合起来,进行更好的预测,这种组合结果被称为:集成方法或元算法使用集成方法时有多种形式:可以是不同算法的集成,也可以是同一算法在不同设置下的集成,还可以是数据集不同部分分配给不同分类器之后的集成。而AdaBoost元算法,就是基于第2种集成形式:同一算法在不同设置下的集成。A...原创 2019-05-18 11:40:41 · 257 阅读 · 0 评论 -
(Matplotlib)简易散点图
import matplotlib as mplimport matplotlib.pyplot as pltimport numpy as np%matplotlib inlineplt.style.use('seaborn-whitegrid')1.1用plt.plot()画散点图(需将离散点连接起来)x = np.linspace(0, 10, 30)y = np.sin(...原创 2019-06-20 18:29:03 · 937 阅读 · 0 评论 -
(Matplotlib)画图基础与简易线形图
1.画图基础1.1导入文件包import matplotlib as mplimport matplotlib.pyplot as pltimport numpy as np#设置绘图样式plt.style.use('classic')1.2三种显示图形方式# (1)启动Matplotlib模式, 在notebook中启动交互式图形#%matplotlib notebook...原创 2019-06-20 18:42:06 · 424 阅读 · 0 评论 -
将LabelImg得到的XML文件转为CSV文件
首先,有关LabelImg这个对图像打标的软件的安装和使用方法可以参考:https://github.com/tzutalin/labelImg#labelimghttps://blog.csdn.net/enjoy_endless/article/details/80803149https://cloud.tencent.com/developer/news/325876本文主要讲解,如...原创 2019-07-09 21:28:34 · 2638 阅读 · 7 评论 -
(Scikit-Learn)数据表示与机器学习API的基本使用流程和方法(线性回归,有监督学习,无监督学习,降维,聚类)
一: Scikit-Learn的数据表示下载数据集并加载到Pandas的DataFrame中import seaborn as snsiris = sns.load_dataset('iris')iris.head()2. Seaborn对数据进行可视化使用矩阵图(pair plot)画出所有变量中任意两个变量之间的图形%matplotlib inlineimport se...原创 2019-07-14 18:09:37 · 576 阅读 · 1 评论 -
(Scikit-Learn)特征工程:分类特征,文本特征,衍生特征,缺省值填充,管道特征
特征工程(1)分类特征浏览房屋数据的时候,除了看到“房价” (price)和“面积”(rooms)之类的数值特征,还会有“地点”(neighborhood)信息,数 据可能像这样:data = [ {'price': 850000, 'rooms': 4, 'neighborhood': 'Queen Anne'}, {'price': 700000, 'rooms': 3,...原创 2019-07-14 22:37:49 · 1097 阅读 · 0 评论 -
(Scikit-Learn)支持向量机详解 & 人脸识别实战
%matplotlib inlineimport numpy as npimport matplotlib.pyplot as pltfrom scipy import statsimport seaborn as sns; sns.set()from sklearn.datasets.samples_generator import make_blobsX,y = make_blo...原创 2019-07-18 21:38:29 · 1312 阅读 · 0 评论 -
(Scikit-Learn)朴素贝叶斯使用方法:高斯朴素贝叶斯 多项式朴素贝叶斯(文本分类)
在贝叶斯分类中,我们希望确定一个具有某些特征的样本属于某类标签的概率,通常记为 P (L | 特征 )。贝叶斯定理告诉我们,可以直接用下面的公式计算这个概率:假如需要确定两种标签,定义为 L1 和 L2,一种方法就是计算这两个标签的后验概率的比值:其中,P(L1)和P(L2)的值根据训练集中各个类别的数据所占比例,可以简单方便的获得。现在需要一种模型,帮我们计算每个标签的 P ( 特征...原创 2019-07-16 17:16:21 · 3734 阅读 · 0 评论 -
(Scikit-Learn)线性回归 基函数的含义详解
线性回归:将数据拟合成一条直线。直线拟合的模型方程为 y = ax + b,其中 a 是直线斜率, b 是直线截距。看看下面的数据,它们是从斜率为 2、截距为 -5 的直线中抽取的散点%matplotlib inlineimport matplotlib.pyplot as pltimport seaborn as sns; sns.set()import numpy as nprn...原创 2019-07-17 13:00:48 · 6506 阅读 · 0 评论 -
[实战] 朴素贝叶斯分类器进行垃圾邮件过滤
我们已经讲解过朴素贝叶斯分类器的基本原理和实现:动手实现朴素贝叶斯分类器进行文档分类在此基础上,我们实现垃圾邮件的过滤,数据为50封txt邮件(1)将text文本文件,分成单词列表使用正则表达式,使用除单词和数字外的任意字符串为分隔符并删除长度小于3的字符串def textParse(bigString): import re listOfTokens = re.spli...原创 2019-05-15 21:24:41 · 1747 阅读 · 0 评论 -
[实战] 朴素贝叶斯分类器进行文档分类
贝叶斯准则:贝叶斯准则告诉我们:如何交换条件概率中的条件和结果,即如果已知P(x|c),要求P(c|x):朴素贝叶斯有两个假设:1:特征之间相互独立2:每个特征同等重要对于一个文档分类问题,已知文档x,要求x属于类别c的概率P(c|x)在训练数据集中,我们可以很方便的求出类别为c的文档的概率P( c)= 类别为c的文档数/文档总数而在类别为c的文档中,特征为x的概率P(x|c)=...原创 2019-05-15 19:01:19 · 772 阅读 · 0 评论 -
TensorFlow实现线性回归
之前写过TensorFlow建立神经网络的固定步骤: https://blog.csdn.net/STILLxjy/article/details/89366256现在我们严格按照上面的步骤实现线性回归。已知一些点坐标(x,y),通过一条直线去拟合数据点(类似于根据大小估计房屋的价格)(1)通过 y=2x + e 的方式创建实验数据,e为噪音(2)按照步骤建立神经网络:一:定义计算...原创 2019-04-17 22:34:50 · 210 阅读 · 0 评论 -
(吴恩达机器学习)多变量线性回归
前面的博客我们已经谈过梯度下降算法的核心思想,并在单一变量的情况下做了说明。理解了单变量线性回归那么多变量线性回归就很简单了,思想和操作都是一样的,只不过更一般化了而已。这里我们主要说明一些多变量梯度下降算法的使用技巧和正规方程的使用。1特征缩放:对于多变量的情况,每个变量的含义都不相同,变量的取值范围和量度也都不太一样,所以我们不能仅仅将变量的原始值带入进行研究。例如:对于房价问题,...原创 2018-05-26 11:47:29 · 601 阅读 · 0 评论 -
(吴恩达机器学习)Logistic 回归
逻辑回归提出的原因:对于分类问题,为什么不能用我们之前学习的线性回归算法来解决呢?有以下两点: 1:不能很好地说明实际情况的真正意义 2:函数值可能大于1或者小于0(对于二类分类0,1)假设函数:为了使函数值在0~1之间,假设函数h(x)从h(x) = θ’x换为 h(x) = g(θ’x) 其中g(z)=1/(1+e^-z)h(x)的含义为:对于给定的输入x,y=1的概率为...原创 2018-05-27 13:03:00 · 1628 阅读 · 1 评论 -
(吴恩达机器学习)神经网络入门
1:为什么神经网络可以实现复杂的非线性假设函数的计算? 对于一个较为复杂的数学式子的求解过程,我们是分步进行求解的。 例如要求解a*(b+c)的值,我们是先进行b+c的计算,然后在将其结果与a相乘。对于这个式子神经网路的求解过程如下图所示: 第一层是输入层,最后一层是输出层,中间为隐藏层。隐藏层实际上就是一个复杂式子的中间计算过程,除了输入层外,其他的每一个节点表示的就是一个计算过程,计...原创 2018-07-02 14:30:16 · 4875 阅读 · 0 评论 -
Ubuntu16.04 & Python3.x 基于 VirtualEnv 安装 TensorFlow
系统版本:ubuntu-16.04.3-desktop-amd64Python3.5注意unbuntu需要是64位的!!! tensorflow官方安装包目前不支持32位的os。根据TensorFlow中文社区安装教程,首先进行如下操作:首先, 安装所有必备工具:# 在 Linux 上:$ sudo apt-get install python-pip python-dev pyth...原创 2018-10-16 21:22:03 · 580 阅读 · 0 评论 -
在神经网络中提取知识 [Distilling the Knowledge in a Neural Network]
论文题目:Distilling the Knowledge in a Neural Network思想总结:深度神经网络对信息的提取有着很强的能力,可以从大量的数据中学习到有用的知识,比如学习如何将手写数字图片进行0~9的分类。层数越多(越深),神经单元个数越多的网络,可以在大量的数据中获取的知识越丰富,能力越强。然而当我们使用一个十分复杂的网络对一个较大的训练集进行训练时,参数众多,网络...原创 2018-12-27 01:10:00 · 942 阅读 · 0 评论 -
机器学习中的特征提取与特征转换 [将线性不可分转换为线性可分]
机器学习中,神经网络是如何将线性不可分的样本,进行很好的分类的?如上图所示,左图中的蓝色的圆圈和红色的叉叉是线性不可分的。如上图中右图所示,我们发现它们是可以被一个圆分开的。假设黑色圆圈的公式为: x1^2 + x2^2 + 0.6 = 0,则可以使用如下公式将蓝色的圆圈和红色的叉叉很好的分开。特征转换 :如上图所示,我们将x-空间的特征,转换为z-空间中的特征。在左图x-空间中,...原创 2018-12-23 13:21:40 · 1945 阅读 · 0 评论 -
[一种通用的正则化方法Dropout] 深入理解Dropout正则化思想和实现方法
论文题目: Dropout: A Simple Way to Prevent Neural Networks fromOverfitting(1)过拟合问题:具有大量参数的深度神经网络是非常强大的机器学习系统。然而,在这样的网络中,过度拟合是一个严重的问题。包含多个非线性隐含层的深层神经网络,具有非常强大的表现力型,能够学习输入和输出之间非常复杂的关系。然而,在训练数据有限的情况下,许多学...原创 2018-12-31 21:45:10 · 2043 阅读 · 0 评论 -
机器学习100天-K邻近法 [KNN算法思想 + KNeighborsClassifier]
K-NN算法计算过程:上述过程(1)(2)(3)在寻找k个最近点时,采用了暴力搜索的思想。也可以采取其他算法寻找处最近的k个点,如:BallTree, KDTree等。计算流程事例:(1)(2)(3)(4)sklearn.neighbors.KNeighborsClassifier 参数说明:官方API:https://scikit-learn.org/stable...原创 2019-01-18 15:33:47 · 832 阅读 · 0 评论 -
机器学习100天-数据预处理 [代码实现细节分析]
原始数据: 在Data.csv文件中我们有如下数据:统计了10个人的基本信息:国籍,年龄,工资 以及他们对于某件商品是否购买的情况。代码实现细节分析:(1)导入基本python包import numpy as npimport pandas as pd(2)导入数据,读取.csv文件中的数据dataset = pd.read_csv('Data.csv') #读取指定.csv文...原创 2019-01-15 17:51:23 · 1124 阅读 · 0 评论 -
机器学习100天-简单线性回归 [代码实现细节分析]
预测学生 学习时间 与 考试分数 之间的关系原始数据:(1)导入python包,加载.csv文件中的数据import numpy as npimport pandas as pdimport matplotlib.pyplot as pltdataset = pd.read_csv('studentscores.csv')X = dataset.iloc[:,:1].value...原创 2019-01-15 19:30:16 · 925 阅读 · 0 评论 -
机器学习100天-多元线性回归 [代码实现细节分析]
原始数据:(1)导入库import pandas as pdimport numpy as np(2)导入数据集:数据中存在值为0的丢失数据情况dataset = pd.read_csv('50_Startups.csv')X = dataset.iloc[ : , :-1].valuesY = dataset.iloc[ : , 4 ].values(3)数据预处理...原创 2019-01-15 20:57:24 · 1607 阅读 · 1 评论 -
机器学习100天-逻辑回归 [ 混淆矩阵, np.meshgrid(),np.ravel() ]
相关知识点:1 混淆矩阵 confusion_matrix : 混淆矩阵类似于混淆矩阵也称误差矩阵,是表示精度评价的一种标准格式,用n行n列的矩阵形式来表示。混淆矩阵的每一列代表了预测类别 ,每一列的总数表示预测为该类别的数据的数目;每一行代表了数据的真实归属类别,每一行的数据总数表示该类别的数据实例的数目。如有150个样本数据,预测为1,2,3类各为50个。分类结束后得到的混淆矩阵为:...原创 2019-01-16 21:39:02 · 3035 阅读 · 1 评论 -
TensorFlow建立神经网络的固定步骤
TensorFlow 将数值计算表示为计算图。使用TensorFlow建立神经网络的固定步骤: 一:定义计算图结构 二:通过预测值定义损失函数 三:定义优化器 四:创建会话(Session)训练网络我们使用Tensorflow实现网络结构: h = ReLU(W * x + b)计算图如下图所示:在计算图中包含了TensorFlow的3种元素:1:变量(variable)...原创 2019-04-17 22:10:30 · 671 阅读 · 0 评论 -
(Scikit-Learn)K-means聚类算法详解 图片色彩压缩
k-means 算法:在不带标签的多维数据集中寻找确定数量的簇。最优的聚类结果需要符合以 下两个假设。• “簇中心点”(cluster center)是属于该簇的所有数据点坐标的算术平均值。• 一个簇的每个点到该簇中心点的距离,比到其他簇中心点的距离短。%matplotlib inlineimport matplotlib.pyplot as pltimport seaborn as ...原创 2019-07-20 17:35:08 · 2737 阅读 · 0 评论