filename='g:\data\iris.csv' lines=fr.readlines()Mat=zeros((len(lines),4))irisLabels=[]index=0for line in lines: line=line.strip() if len(line)>0: listFromline=line.split(',') irisLabels.append(listFromline[-1]) Mat[index,:]=listFromline[0:4] index=in…
基本流程: 1.计算测试实例到所有训练集实例的距离: 2.对所有的距离进行排序,找到k个最近的邻居: 3.对k个近邻对应的结果进行合并,再排序,返回出现次数最多的那个结果. 交叉验证: 对每一个k,使用验证集计算,记录k对应的错误次数,取错误数最小的k # -*- coding: utf-8 -*- import os import pandas as pd import matplotlib.pyplot as plt import math import operator #按照8:2的比例…
前言 本篇我会使用scikit-learn这个开源机器学习库来对iris数据集进行分类练习. 我将分别使用两种不同的scikit-learn内置算法--Decision Tree(决策树)和kNN(邻近算法),随后我也会尝试自己实现kNN算法.目前为止,我还是在机器学习的入门阶段,文章中暂不详细解释算法原理,如果想了解细节信息可自行搜索. 代码分解 读取数据集 scikit-learn中预制了很多经典数据集,非常方便我们自己练习用.使用方式也很容易: # 引入datasets from skle…
SVM全称是Support Vector Machine,即支持向量机,是一种监督式学习算法.它主要应用于分类问题,通过改进代码也可以用作回归.所谓支持向量就是距离分隔面最近的向量.支持向量机就是要确保这些支持向量距离超平面尽可能的远以保证模型具有相当的泛化能力. 当训练数据线性可分时,通过硬间隔最大化,学习一个线性分类器,即线性可分支持向量机:当训练数据近似线性可分时,通过软间隔最大化,也学习一个线性分类器,即线性支持向量机:当训练数据线性不可分时,通过使用核技巧,将低维度的非线性问题转化为高…
代码多来自<Introduction to Machine Learning with Python>. 该文集主要是自己的一个阅读笔记以及一些小思考,小总结. 前言 在开始进行模型训练之前,非常有必要了解准备的数据:数据的特征,数据和目标结果之间的关系是什么?而且这可能是机器学习过程中最重要的部分. 在开始使用机器学习实际应用时,有必要先回答下面几个问题: 解决的问题是什么?现在收集的数据能够解决目前的问题吗? 该问题可以转换成机器学习问题吗?如果可以,具体属于哪一类?监督 or 非监督 从…
本次主要围绕Iris数据集进行一个简单的数据分析, 另外在数据的可视化部分进行了重点介绍. 环境 win8, python3.7, jupyter notebook 目录 1. 项目背景 2. 数据概览 3. 特征工程 4. 构建模型 正文 1. 项目背景 鸢尾属(拉丁学名:Iris L.), 单子叶植物纲, 鸢尾科多年生草本植物, 开的花大而美丽, 观赏价值很高. 鸢尾属约300种, Iris数据集中包含了其中的三种: 山鸢尾(Setosa),  杂色鸢尾(Versicolour), 维吉尼亚…
''' 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…
我看CSDN下载的iris数据集都需要币,我愿意免费共享,希望下载后的朋友们给我留个言 分享iris数据集(供学习使用): 链接: https://pan.baidu.com/s/1Knsp7zn-CGkPs8k-akpiww 密码: ejnw ( 1.有header:2.有.csv和.txt两种格式)…
KNN(K Nearest Neighbor) 还是先记几个关键公式 距离:一般用Euclidean distance   E(x,y)√∑(xi-yi)2 .名字这么高大上,就是初中学的两点间的距离嘛. 还有其他距离的衡量公式,余弦值(cos),相关度(correlation) 曼哈顿距离(manhatann distance).我觉得针对于KNN算法还是Euclidean distance最好,最直观. 然后就选择最近的K个点.根据投票原则分类出结果. 首先利用sklearn自带的的iris…
R语言实现分层抽样(Stratified Sampling)以iris数据集为例 1.观察数据集 head(iris) Sampling)以iris数据集为例">  选取数据集中前6个数据,我们可以看出iris数据集一共有5个字段. dim(iris) Sampling)以iris数据集为例">  iris数据集一共有150条数据,5个字段 summary(iris) Sampling)以iris数据集为例">  观察各个变量的内容,可以看出前四个变量(Se…
iris数据集预测(对比随机森林和逻辑回归算法) 随机森林 library(randomForest) #挑选响应变量 index <- subset(iris,Species != "setosa")ir <- droplevels(index) set.seed(1) ind<-sample(2,nrow(ir),replace=TRUE,prob=c(0.7,0.3)) train<-ir[ind==1,] test<-ir[ind==2,] rf&…
所有内容都在python源码和注释里,可运行! ########################### #说明: # 撰写本文的原因是,笔者在研究博文“http://python.jobbole.com/83563/”中发现 # 原内容有少量笔误,并且对入门学友缺少一些信息.于是笔者做了增补,主要有: # 1.查询并简述了涉及的大部分算法: # 2.添加了连接或资源供进一步查询: # 3.增加了一些lib库的基本操作及说明: # 4.增加了必须必要的python的部分语法说明: # 5.增加了对…
python基础.numpy使用.io读取数据集.数据处理转换与简单分析.读取UCI iris数据集中鸢尾花的萼片.花瓣长度数据,进行数据清理,去重,排序,并求出和.累积和.均值.标准差.方差.最大值.最小值.…
KNN算法的实现 import pandas as pd from math import dist k = int(input("请输入k值:")) dataTest = pd.read_csv('iristest.csv', header=None).values trainData = pd.read_csv('iristrain.csv', header=None).values # 用于我懒得把测试数据和训练数据封装成不同类,所以就会在成员变量里面同时出现测试数据专有的属性和…
1. 距离计算,不要通过遍历每个样本来计算和指定样本距离,而是通过对于指定样本进行广播(复制)成为一个shape和全局一致后,再进行整体计算,这里的广播 / 复制采用的是tile函数来实现的: 2. numpy的排序函数argsort,这个函数可以默认按照冒泡排序进行排序:对于一维数组,正序排列正常传入数组即可返回np.argsort(x):如果是逆序则是np.argsort(-x):类似的对于二维数组,需要指定一下axis,如果0代表按照列进行排序,axis=1代表按照行进行排序: 3. 对于…
前面一个博客我们用Scikit-Learn实现了中文文本分类的全过程,这篇博客,着重分析项目最核心的部分分类算法:朴素贝叶斯算法以及KNN算法的基本原理和简单python实现. 3.1 贝叶斯公式的推导 简单介绍一下什么是贝叶斯: 让我们从一个故事开始. 1 看着后视镜往前开车 想象这么一个场景,我开着车,经过笔直的大道,快速地往下一个路口驶去.我知道,到了下一个路口就要右转了. 这件事情很简单,我坐在驾驶室内,看到下一个路口,往右边打方向盘就好了: 突然,不管什么原因(这故事是我写的,可以安排…
首先引入需要的包 %matplotlib inline import numpy as np import scipy as sp import pandas as pd import matplotlib.pyplot as plt import sys import os path = os.path.abspath('..') if not path in sys.path: sys.path.append(path) 载入数据集,使数据中心化(减去平均值) from dataset.cl…
import matplotlib.pyplot as plt from scipy import sparse import numpy as np import matplotlib as mt import pandas as pd from IPython.display import display from sklearn.datasets import load_iris import sklearn as sk from sklearn.model_selection impor…
作者有话说 最近学习了一下BP神经网络,写篇随笔记录一下得到的一些结果和代码,该随笔会比较简略,对一些简单的细节不加以说明. 目录 BP算法简要推导 应用实例 PYTHON代码 BP算法简要推导 该部分用一个$2\times3\times 2\times1$的神经网络为例简要说明BP算法的步骤. 向前计算输出 反向传播误差  权重更新  应用实例 鸢尾花数据集一共有150个样本,分为3个类别,每个样本有4个特征,(数据集链接:http://archive.ics.uci.edu/ml/datas…
iris以鸢尾花的特征作为数据来源,数据集包含150个数据集,分为3类,每类50个数据,每个数据包含4个属性,是在数据挖掘.数据分类中非常常用的测试集.训练集. 链接地址…
由于KNN的计算量太大,还没有使用KD-tree进行优化,所以对于60000训练集,10000测试集的数据计算比较慢.这里只是想测试观察一下KNN的效果而已,不调参. K选择之前看过貌似最好不要超过20,因此,此处选择了K=10,距离为欧式距离.如果需要改进,可以再调整K来选择最好的成绩. 先跑了一遍不经过scale的,也就是直接使用像素灰度值来计算欧式距离进行比较.发现开始基本稳定在95%的正确率上,吓了一跳.因为本来觉得KNN算是没有怎么“学习”的机器学习算法了,猜测它的特点可能会是在任何情…
一. 马氏距离 我们熟悉的欧氏距离虽然很有用,但也有明显的缺点.它将样品的不同属性(即各指标或各变量)之间的差别等同看待,这一点有时不能满足实际要求.例如,在教育研究中,经常遇到对人的分析和判别,个体的不同属性对于区分个体有着不同的重要性.因此,有时需要采用不同的距离函数. 如果用dij表示第i个样品和第j个样品之间的距离,那么对一切i,j和k,dij应该满足如下四个条件:    ①当且仅当i=j时,dij=0 ②dij>0 ③dij=dji(对称性) ④dij≤dik+dkj(三角不等式) 显…
简化版代码 from sklearn import datasets import numpy as np #获取data和类标 iris = datasets.load_iris() X = iris.data[:,[2,3]] y = iris.target #测试样本和训练样本三七分 from sklearn.model_selection import train_test_split X_train,X_test,y_train,y_test = train_test_split(X,…
包含三个花的品种(Iris setosa(山鸢尾),Iris virginica(北美鸢尾),Iris versicolor(变色鸢尾)) 每个品种各50个样 每个样本四个特征参数(萼片长度和宽度.花瓣长度和宽度) scikit-learn自带一些经典的数据集,如iris,digits,boston house prices,可以直接导入 导入数据方式: from sklearn import datasets iris=datasets.load_iris() 导入的数据是一种字典形式,特征存…
寻找与待分类的样本在特征空间中距离最近的K个已知样本作为参考,来帮助进行分类决策. 与其他模型最大的不同在于:该模型没有参数训练过程.无参模型,高计算复杂度和内存消耗. #coding=utf8 # 从sklearn.datasets 导入 iris数据加载器. from sklearn.datasets import load_iris # 从sklearn.model_selection中导入train_test_split用于数据分割. from sklearn.model_selecti…
data=iris[,-5]dist.e=dist(data,method='euclidean')model1=hclust(dist.e,method='ward') #分3类result=cutree(model1,k=3)mds=cmdscale(dist.e,k=2,eig=T)x = mds$points[,1]y = mds$points[,2]library(ggplot2)p=ggplot(data.frame(x,y),aes(x,y))p+geom_point(size=3…
# coding=utf-8 import pandas as pd from sklearn.model_selection import train_test_split from sklearn import tree from sklearn.metrics import precision_recall_curve #准确率与召回率 import numpy as np #import graphviz import os os.environ["PATH"] += os.p…
#coding:utf-8 import tensorflow as tf from PIL import Image,ImageFilter from tensorflow.examples.tutorials.mnist import input_data def imageprepare(argv): # 该函数读一张图片,处理后返回一个数组,进到网络中预测 """ This function returns the pixel values. The imput is…
K 近邻 (K-nearest neighbor, KNN) 算法直接作用于带标记的样本,属于有监督的算法.它的核心思想基本上就是 近朱者赤,近墨者黑. 它与其他分类算法最大的不同是,它是一种"懒惰"的学习算法 (lazy learning),因为实际上它并没有"训练"的过程,也不产生一个真实意义上的"模型",而只是一字不差地将所有训练样本保存起来,等到需要对新样本进行分类的时候,将新样本与所有训练样本进行比较,找出与其距离最接近的 k 个样本,…
教你用Python实现简单监督学习算法 监督学习作为运用最广泛的机器学习方法,一直以来都是从数据挖掘信息的重要手段.即便是在无监督学习兴起的近日,监督学习也依旧是入门机器学习的钥匙. 这篇监督学习教程适用于刚入门机器学习的小白. 当然了,如果你已经熟练掌握监督学习,也不妨快速浏览这篇教程,检验一下自己的理解程度~ 什么是监督学习? 在监督学习中,我们首先导入包含有训练属性和目标属性的数据集.监督学习算法会从数据集中学习得出训练样本和其目标变量之间的关系,然后将学习到的关系对新样本(未被标记的样本…