前言 本篇我会使用scikit-learn这个开源机器学习库来对iris数据集进行分类练习. 我将分别使用两种不同的scikit-learn内置算法--Decision Tree(决策树)和kNN(邻近算法),随后我也会尝试自己实现kNN算法.目前为止,我还是在机器学习的入门阶段,文章中暂不详细解释算法原理,如果想了解细节信息可自行搜索. 代码分解 读取数据集 scikit-learn中预制了很多经典数据集,非常方便我们自己练习用.使用方式也很容易: # 引入datasets from skle…
特征处理是特征工程的核心部分,特征工程是数据分析中最耗时间和精力的一部分工作,它不像算法和模型那样式确定的步骤,更多的是工程上的经验和权衡,因此没有统一的方法,但是sklearn提供了较为完整的特征处理方法,包括数据预处理,特征选择,降维等.首次接触到sklearn,通常会被其丰富且方便的算法模型库吸引,但是这里介绍的特征处理库也非常强大! 经过前人的总结,特征工程已经形成了接近标准化的流程,如下图所示(此图来自此网友,若侵权,联系我,必删除) 1 特征来源——导入数据 在做数据分析的时候,特征…
网上有很多关于sklearn的学习教程,大部分都是简单的讲清楚某一方面,其实最好的教程就是官方文档. 官方文档地址:https://scikit-learn.org/stable/ (可是官方文档非常详细,同时许多人对官方文档的理解和结构上都不能很好地把握,我也打算好好学习sklearn,这可能是机器学习的神器),下面先简单介绍一下sklearn. 自2007年发布以来,scikit-learn已经成为Python重要的机器学习库了,scikit-learn简称sklearn,支持包括分类,回归…
sklearn数据集 (一)机器学习的一般数据集会划分为两个部分 训练数据:用于训练,构建模型. 测试数据:在模型检验时使用,用于评估模型是否有效. 划分数据的API:sklearn.model_selection.train_test_split 示例代码如下: from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split # 使用加载器读取数据并存入变量iris iris…
前言 本文接着上一篇继续来聊Tensorflow的接口,上一篇中用较低层的接口实现了线性模型,本篇中将用更高级的API--tf.estimator来改写线性模型. 还记得之前的文章<机器学习笔记2 - sklearn之iris数据集>吗?本文也将使用tf.estimator改造该示例. 本文代码都是基于API版本r1.4.本文中本地开发环境为Pycharm,在文中不再赘述. tf.estimator 内置模型 比起用底层API"较硬"的编码方式,tf.estimator的在…
Keras是一个深度学习库,包含高效的数字库Theano和TensorFlow.是一个高度模块化的神经网络库,支持CPU和GPU. 本文学习的目的是学习如何加载CSV文件并使其可供Keras使用,如何使用Keras创建一个回归问题的神经网络模型,如何使用scikit-learn和Keras一起使用交叉验证来评估模型,如何进行数据准备以提高Keras模型的技能,如何使用Keras调整模型的网络拓扑. 前期准备之Keras的scikit-learn接口包装器 Git地址:https://github…
代码多来自<Introduction to Machine Learning with Python>. 该文集主要是自己的一个阅读笔记以及一些小思考,小总结. 前言 在开始进行模型训练之前,非常有必要了解准备的数据:数据的特征,数据和目标结果之间的关系是什么?而且这可能是机器学习过程中最重要的部分. 在开始使用机器学习实际应用时,有必要先回答下面几个问题: 解决的问题是什么?现在收集的数据能够解决目前的问题吗? 该问题可以转换成机器学习问题吗?如果可以,具体属于哪一类?监督 or 非监督 从…
转载请注明作者:梦里风林 Google Machine Learning Recipes 4 官方中文博客 - 视频地址 Github工程地址 https://github.com/ahangchen/GoogleML 欢迎Star,也欢迎到Issue区讨论 Recipes 4 Let's Write a Pipeline 复习与强化概念 监督学习基础套路 例子: 一个用于举报邮件的分类器 关键在于举报新的邮件 Train vs Test:隔离训练集,测试集以验证训练效果 f(x) = y fe…
Keras是一个用于深度学习的Python库,它包含高效的数值库Theano和TensorFlow. 本文的目的是学习如何从csv中加载数据并使其可供Keras使用,如何用神经网络建立多类分类的数据进行建模,如何使用scikit-learn评估Keras神经网络模型. 前言,对两分类和多分类的概念描述 (前言是整理别人博客的笔记https://blog.csdn.net/qq_22238533/article/details/77774223) 1,在LR(逻辑回归)中,如何进行多分类? 一般情…
原文链接:https://blog.csdn.net/gwplovekimi/article/details/80288964 本博文为逻辑斯特回归的学习笔记.由于仅仅是学习笔记,水平有限,还望广大读者朋友多多赐教. 假设现在有一些数据点,我们用一条直线对这些点进行拟合(该直线称为最佳拟合直线),这个拟合的过程就称为回归. 利用Logistic(逻辑斯蒂)回归是一个分类模型而不回归模型.其进行分类的主要思想是:根据现有数据对分类边界线建立回归公式,以此进行分类.这里的“回归”一词源于最佳拟合,表…
集成学习(Ensemble  learning)是使用一系列学习器进行学习,并使用某种规则把各个学习结果进行整合,从而获得比单个学习器显著优越的泛化性能.它不是一种单独的机器学习算法啊,而更像是一种优化策略.因为单个机器学习模型所能解决的问题有限,泛化能力差,但是通过构建组合多个学习器来完成学习任务往往能够获得奇效,这些学习器可以看成一个个基本单元,由他们组合最终形成一个强大的整体,该整体可以解决更复杂的问题,其思想可以形象的概括为三个臭皮匠赛过诸葛亮. 集成学习是机器学习的一大分支,他通过建立…
之前总结过关于PCA的知识:深入学习主成分分析(PCA)算法原理.这里打算再写一篇笔记,总结一下如何使用scikit-learn工具来进行PCA降维. 在数据处理中,经常会遇到特征维度比样本数量多得多的情况,如果拿到实际工程中去跑,效果不一定好.一是因为冗余的特征会带来一些噪音,影响计算的结果:二是因为无关的特征会加大计算量,耗费时间和资源.所以我们通常会对数据重新变换一下,再跑模型.数据变换的目的不仅仅是降维,还可以消除特征之间的相关性,并发现一些潜在的特征变量. 降维算法由很多,比如PCA…
SVM全称是Support Vector Machine,即支持向量机,是一种监督式学习算法.它主要应用于分类问题,通过改进代码也可以用作回归.所谓支持向量就是距离分隔面最近的向量.支持向量机就是要确保这些支持向量距离超平面尽可能的远以保证模型具有相当的泛化能力. 当训练数据线性可分时,通过硬间隔最大化,学习一个线性分类器,即线性可分支持向量机:当训练数据近似线性可分时,通过软间隔最大化,也学习一个线性分类器,即线性支持向量机:当训练数据线性不可分时,通过使用核技巧,将低维度的非线性问题转化为高…
K近邻(KNN,k-NearestNeighbor)分类算法是数据挖掘分类技术中最简单的方法之一. 所谓K最近邻,就是K个最近的邻居的意思,说的是每个样本都可以用它最接近的k个邻居来代表.KNN算法的核心思想是如果一个样本在特征空间中的K个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特征.该方法在确定分类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别.KNN方法在类别决策时,只与极少数的相邻样本有关.由于kNN方法主要靠周围有限的邻近的…
K-Means算法 K-Means 算法是无监督的聚类算法,它实现起来比较简单,聚类效果也不错,因此应用很广泛.K-Means 算法有大量的变体,本文就从最传统的K-Means算法学起,在其基础上学习K-Means的优化变体方法.包括初始化优化K-Means++, 距离计算优化 elkan  K-Means 算法和大数据情况下的优化 Mini Batch K-Means算法. 聚类问题的一些概念: 无监督问题:我们的手里没有标签了 聚类:就是将相似的东西分到一组 聚类问题的难点:如何评估,如何调…
前言 整理SVM(support vector machine)的笔记是一个非常麻烦的事情,一方面这个东西本来就不好理解,要深入学习需要花费大量的时间和精力,另一方面我本身也是个初学者,整理起来难免思路混乱.所以我对SVM的整理会分为四篇(暂定为四篇)学习,不足之处,请多多指导. 四篇分别为: Python机器学习笔记:SVM(1)——SVM概述 Python机器学习笔记:SVM(2)——SVM核函数 Python机器学习笔记:SVM(3)——证明SVM Python机器学习笔记:SVM(4)—…
完整代码及其数据,请移步小编的GitHub 传送门:请点击我 如果点击有误:https://github.com/LeBron-Jian/MachineLearningNote 在数据挖掘方面,经常需要在做特征工程和模型训练之前对数据进行清洗,剔除无效数据和异常数据.异常检测也是数据挖掘的一个方向,用于反作弊,伪基站,金融欺诈等领域. 在之前已经学习了异常检测算法One Class SVM和 isolation  Forest算法,博文如下: Python机器学习笔记:异常点检测算法--One…
#课程链接 https://www.imooc.com/video/20165 一.机器学习介绍以及环境部署 1.机器学习介绍及其原理 1)什么是人工智能 人工智能就其本质而言,是机器对人的思维信息过程的模拟,让它能像人一样思考.根据输入信息进行模型结构.权重更新,实现最终优化 特点:信息处理.自我学习.优化升级. 2)核心方法 机器学习:一种实现人工智能的方法,使用算法来解析数据.从中学习,然后对真实世界中的事件做出决策和预测.比如垃圾邮件检测.房价预测. 深度学习:一种实现机器学习的技术,模…
本次主要围绕Iris数据集进行一个简单的数据分析, 另外在数据的可视化部分进行了重点介绍. 环境 win8, python3.7, jupyter notebook 目录 1. 项目背景 2. 数据概览 3. 特征工程 4. 构建模型 正文 1. 项目背景 鸢尾属(拉丁学名:Iris L.), 单子叶植物纲, 鸢尾科多年生草本植物, 开的花大而美丽, 观赏价值很高. 鸢尾属约300种, Iris数据集中包含了其中的三种: 山鸢尾(Setosa),  杂色鸢尾(Versicolour), 维吉尼亚…
机器学习岗位的面试中通常会对一些常见的机器学习算法和思想进行提问,在平时的学习过程中可能对算法的理论,注意点,区别会有一定的认识,但是这些知识可能不系统,在回答的时候未必能在短时间内答出自己的认识,因此将机器学习中常见的原理性问题记录下来,保持对各个机器学习算法原理和特点的熟练度. 本文总结了机器学习一些面试题和笔试题,以便自己学习,当然了也为了方便大家,题目是网上找的额,如果有侵权请联系小编,还有,不喜勿喷,谢谢!!! 算法分类 下面图片是借用网友做的,很好的总结了机器学习的算法分类: 问答题…
[机器学习]多项式回归原理介绍 [机器学习]多项式回归python实现 [机器学习]多项式回归sklearn实现 使用sklearn框架实现多项式回归.使用框架更方便,可以少写很多代码. 使用一个简单的数据集来模拟,只有几条数据. 代码 如果不用框架,需要自己手动对数据添加高阶项,有了框架就方便多了.sklearn 使用 Pipeline 函数简化这部分预处理过程. 当 PolynomialFeatures 中的degree=1时,效果和使用 LinearRegression 相同,得到的是一个…
主要内容: 一.损失函数 二.决策边界 三.Kernel 四.使用SVM (有关SVM数学解释:机器学习笔记(八)震惊!支持向量机(SVM)居然是这种机) 一.损失函数 二.决策边界 对于: 当C非常大时,括号括起来的部分就接近于0,所以就变成了: 非常有意思的是,在最小化 1/2*∑θj^2的时候,最小间距也达到最大.原因如下: 所以: 即:如果我们要最小化1/2*∑θj^2,就要使得||θ||尽量小,而当||θ||最小时,又因为,所以p(i)最大,即间距最大. 注意:C可以看成是正则项系数λ…
一.任务基础 导入所需要的库 import matplotlib.pyplot as plt import pandas as pd %matplotlib inline 加载sklearn内置数据集 ,查看数据描述 from sklearn.datasets.california_housing import fetch_california_housing housing = fetch_california_housing() print(housing.DESCR) 数据集包含房价价格以…
之前一篇笔记: Python机器学习笔记:不得不了解的机器学习知识点(1) 1,什么样的资料集不适合用深度学习? 数据集太小,数据样本不足时,深度学习相对其它机器学习算法,没有明显优势. 数据集没有局部相关特性,目前深度学习表现比较好的领域主要是图像/语音/自然语言处理等领域,这些领域的一个共性是局部相关性.图像中像素组成物体,语音信号中音位组合成单词,文本数据中单词组合成句子,这些特征元素的组合一旦被打乱,表示的含义同时也被改变.对于没有这样的局部相关性的数据集,不适于使用深度学习算法进行处理…
''' Created on 2017年5月21日 @author: weizhen ''' #Tensorflow的另外一个高层封装TFLearn(集成在tf.contrib.learn里)对训练Tensorflow模型进行了一些封装 #使其更便于使用. #使用TFLearn实现分类问题 #为了方便数据处理,本程序使用了sklearn工具包, #更多信息可以参考http://scikit-learn.org from sklearn import model_selection from sk…
EM算法也称期望最大化(Expectation-Maximum,简称EM)算法,它是一个基础算法,是很多机器学习领域的基础,比如隐式马尔科夫算法(HMM),LDA主题模型的变分推断算法等等.本文对于EM算法,我们主要从以下三个方向学习: 1,最大似然 2,EM算法思想及其推导 3,GMM(高斯混合模型) 1,最大似然概率 我们经常会从样本观察数据中,找到样本的模型参数.最常用的方法就是极大化模型分布的对数似然函数.怎么理解呢?下面看我一一道来. 假设我们需要调查我们学习的男生和女生的身高分布.你…
完整代码及其数据,请移步小编的GitHub 传送门:请点击我 如果点击有误:https://github.com/LeBron-Jian/MachineLearningNote 奇异值分解(Singular  Value Decomposition,后面简称 SVD)是在线性代数中一种重要的矩阵分解,它不光可用在降维算法中(例如PCA算法)的特征分解,还可以用于推荐系统,以及自然语言处理等领域,在机器学习,信号处理,统计学等领域中有重要应用. 比如之前的学习的PCA,掌握了SVD原理后再去看PC…
神经网络与机器学习 笔记-LMS(最小均方算法)和学习率退火 LMS算法和Rosenblatt感知器算法非常想,唯独就是去掉了神经元的压制函数,Rosenblatt用的Sgn压制函数,LMS不需要压制函数,两者一样是只有单个神经元. LMS算法信号流图 算法小结: 然后在说下退火: #pragma once #include "stdafx.h" #include <string> #include <iostream> using namespace std;…
机器学习笔记:Gradient Descent http://www.cnblogs.com/uchihaitachi/archive/2012/08/16/2642720.html…
SKlearn简介 scikit-learn,又写作sklearn,是一个开源的基于python语言的机器学习工具包.它通过NumPy, SciPy和Matplotlib等python数值计算的库实现高效的算法应用,并且涵盖了几乎所有主流机器学习算法. SKlearn官网链接:http://scikit-learn.org/stable/index.html 在工程应用中,用python手写代码来从头实现一个算法的可能性非常低,这样不仅耗时耗力,还不一定能够写出构架清晰,稳定性强的模型.更多情况…