学习笔记之机器学习(python)
文章平均质量分 94
Joker_sir5
固定观念往往孕育出盲点!
展开
-
动手实现简单的KNN(python)
算法思想先举一个可能不是很恰当的例子:“近朱者赤近墨者黑”,想象一下,假如你是一个女孩纸,新认识一个男性朋友,如果你了解到他周围的朋友大部分是性格开朗,阳关帅气的,你潜意识会觉得这个大概也是这样的人,那如果他周围大部分是那些“臭名昭著”,名声不是很好的朋友,你潜意识的会觉得,emmmmm这个人可能不是很靠谱,有待考量……这么说来你的潜意识就是一个典型的KNN分类器。(hhhh,扯得有点远,朋友...原创 2018-08-30 23:38:38 · 684 阅读 · 0 评论 -
支持向量机(Support Vector Machine)
数学推导1.优化目标对于一个线性可分的二分类问题来说,分类决策面会有很多个,如何确定那一条是最优的决策面,SVM给出了思路:这个分类决策面要满足距离两类数据的间隔最大,方法就是让两类中距离决策面最近的点到决策面的距离最大,如图所示,要让标记的四个点到决策面的距离最大化,且这他们到决策面的距离相等,这些点被称为“支持向量”。在空间解析几何中,若有点A(x0,y0),直线ax+by+c=0,则...原创 2018-09-24 21:21:26 · 339 阅读 · 0 评论 -
动手实现linear Regression
算法思想线性回归的目标是通过对训练样本的学习,得到从样本特征到样本标签之间的映射,可以类比logistic regression的思路,但不同的是,逻辑回归是一种分类算法,其样本标签是离散值,而线性回归处理的是回归问题,其样本标签是连续值,比如本篇博客要用到的sklearn中的波士顿房价的数据,其对应的房价标签是一系列连续值。对于线性回归,其目的就是要找到这样的一个映射关系,W是需要训练的...原创 2018-09-13 21:24:51 · 599 阅读 · 0 评论 -
岭回归和Lasso回归
偏差和方差机器学习算法针对特定数据所训练出来的模型并非是十全十美的,再加上数据本身的复杂性,误差不可避免。说到误差,就必须考虑其来源:模型误差 = 偏差(Bias)+ 方差(Variance)+ 数据本身的误差。其中数据本身的误差,可能由于记录过程中的一些不确定性因素等导致,这个我们无法避免,能做的只有不断优化模型参数来权衡偏差和方差,使得模型误差尽可能降到最低。偏差:导致偏差的原因有多种,其...原创 2018-09-18 15:50:17 · 25508 阅读 · 3 评论 -
回归、分类问题中的多项式特征
前面的博客针对的二分类问题,一直有个隐含的前提,即数据是线性可分的,对于回归问题,所使用的波士顿房价数据也是可以用一条直线表征数据与标签间的映射关系。但是实际应用中,根据数据走势,分类问题未必就是线性可分的,回归问题中一条直线也未必能很好的表示表示数据走势,如何处理这类非线性的问题,就引出一种处理方法------多项式特征说明:为了说明多项式特征,将利用sklearn封装的方法进行测试pol...原创 2018-09-17 23:44:40 · 4369 阅读 · 0 评论 -
scikit-learn中的决策树
CART决策树解决分类问题scikit-learn中为我们封装了决策树分类器,详情可参见DecisionTreeClassifier然后我们通过查询文档来看一下DecisionTreeClassifier这个方法所需要的常用参数: 1)criterion:传入所需特征选择的准则,gini为基尼指数,entropy为信息熵,默认“gini” 2)max_depth :决策树的最大高度...原创 2018-09-05 23:48:59 · 880 阅读 · 0 评论 -
动手实现Logistic Regression
算法思想Logistic Regression是一种分类算法,一般处理的是二分类的问题,标签为离散值(如{0,1}),通过给定的训练样本集合(训练数据和标签),训练出最佳的回归系数,也称为权重矩阵,然后利用该权重矩阵对新样本进行预测,并给出最终的对应分类。 预测时,首先计算 其中x为训练样本,x=(x1,x2,…,xn),w为权重矩阵,w=(w0,w1,…,wn),x0一般设为1,x0w...原创 2018-09-09 00:47:03 · 1232 阅读 · 0 评论 -
动手实现决策树
算法思想刚接触决策树的概念时,让我想到了有段时间比较火的一些性格测试,参与者需要认真回答10道左右给出的所谓“性格测试题”,并在完成后得出最终测得的参与者“性格”。从我身边的例子来看,大部分情况下这些测试结果还是令参与者满意的,虽说其中不乏有一定的娱乐成分,但是我想这些试题也并非是随随便便给出来的。这些试题正如一颗高度为10的决策树一般,随着参与者每道题的选择而走向不同的路径,并最终到达叶节点...原创 2018-09-05 19:04:53 · 370 阅读 · 0 评论 -
Logistic Regression算法分析
在上篇博客 中,实现了逻辑回归算法,最终也利用matplotlib画出了最终的决策面,由于数据较为简单,由经验确定的步长,迭代次数看似使得算法得到的效果良好,那如何确定此时的分类器是否达到最优呢?这将是本篇博客的工作!超平面,截距,斜率变化趋势由于逻辑回归处理的是二分类的问题,并且使用的iris数据集是线性可分的,所以它的决策面是一条直线,那么说到直线就有两个指标可以考量——截距,斜率...原创 2018-09-11 17:03:35 · 567 阅读 · 0 评论 -
scikit-learn中的KNN
KNeighborsClassifier前两篇博客动手实现简单的KNN(python)、KNN优化之参数设置,我们自己动手编写了KNN分类器,产生了不错的效果,丰衣足食。这篇博客我们来整理下,如何使用scikit-learn中封装好的KNeighborsClassifier,仍然使用iris和digits数据集,直接上代码(读者若想了解更多scikit-learn中封装的KNN方法,请戳这里)...原创 2018-08-31 16:28:20 · 654 阅读 · 0 评论 -
KNN优化之调参
上篇博客 我们留下了三个问题:数据集,参数,准确率。这些问题我们将在这篇博客解决!数据集这里介绍一个很有意思的开源数据集——scikit-learn ,熟悉了这个数据集我们就可以拿来检验我们自己的写分类器的合理性,当然包括我们今天的主题——KNN,我将使用其中的两个经典的数据集——iris(鸢尾花)和digits(手写数字),来验证上篇博客所写的knn是否符合期望!话不多说,直接上...原创 2018-08-31 16:26:39 · 13921 阅读 · 0 评论 -
主成分分析(Principa Component Analysis,PCA)
算法思想在研一准备模式识别考试的时候,有这样一个总结我觉得能很清晰看到PCA在实际应用中的地位,见下图:PCA可以对原始特征进行选择或变换,从而得到降维后的最能反映分类本质的特征,是最常用的一种降维方法,另外还有其他的方法,如因子分析(Factor Analysis)、独立成分分析(Independent Component Analysis,ICA)。在PCA中,数据从原来的坐标系转换到...原创 2018-10-09 17:17:16 · 1224 阅读 · 1 评论