精华内容
下载资源
问答
  • 虹膜数据集 分析虹膜数据集并构建机器学习算法以使用花瓣萼片维度对虹膜植物类型进行分类
  • 机器学习基本概念

    2019-05-19 16:45:30
    以下面的图,来分析机器学习数据的一些概念: 萼片长度 萼片宽度 花瓣长度 花瓣宽度 种类 5.8 3.5 1.5 0.6 se(0) 7.2 3.5 1.6 0.5 ve(1) 3.1 2.5 1.6 0.2 vi(2) 数据集:上面这个整体的数据就叫数据...

    数据

    以下面的图,来分析机器学习数据的一些概念:

    萼片长度 萼片宽度 花瓣长度 花瓣宽度 种类
    5.8 3.5 1.5 0.6 se(0)
    7.2 3.5 1.6 0.5 ve(1)
    3.1 2.5 1.6 0.2 vi(2)
    • 数据集:上面这个整体的数据就叫数据集(data set)
    • 样本:每一行的数据称为样本(sample)
    • 特征:除最后一列,每一列表达样本的一个特征(feature)
    • 标记:最后一列,称为标记
    • 数学表达:第i个样本行写作X(i)X^{(i)},第i个样本第j个特征值Xj(i)X^{(i)}_ {j},第i个样本的标记写作y(i)y^{(i)} (种类是y,除了种类之外的都是x)
    • 特征向量:X(1)X^{(1)}={5.83.51.50.6}\left\{\begin{matrix} 5.8 \\ 3.5 \\ 1.5 \\ 0.6 \end{matrix} \right\}
    • 样本表示:{(X(1))T(X(2))T(X(3))T(X(4))T}\left\{\begin{matrix} (X^{(1)})^T \\ (X^{(2)})^T \\ (X^{(3)})^T \\ (X^{(4)})^T \end{matrix} \right\}
      下面是另外一个图
      在这里插入图片描述
      整个图表示特征空间,分类任务的本质就是在这个特征空间里面找一条直线划分。这里是二维空间,在高维空间里面也同理。
      再举个栗子,如下图。对于下面的图像,每一个像素点都是特征。25乘以25的图像25*25=625个特征。下图的图像是黑白的,对于彩色的图像,特征更多。
      在这里插入图片描述

    机器学习任务

    分类任务

    二分类

    • 判断邮件是否垃圾邮件
    • 判断发放给客户信用卡是否有风险
    • 判断疾病患者是良性肿瘤还是恶性肿瘤
    • 判断某只股票涨跌

    多分类

    • 一些算法只支持完成二分类任务
    • 当是多分类的任务可以转换成二分类的任务
    • 有一些算法泰瑞可以完成多分类
    • 通过一定的方法,二分类算法可以解决多分类问题

    回归任务

    回归任务的结果是一个连续的数字,而不是一个类别,例如房屋价格、市场分析、学生成绩、股票价格等

    • 有一些算法只能解决回归问题
    • 有一些算法只能解决分类问题
    • 有一些算法技能解决回归问题,又能解决分类问题
    • 一些情况下,回归任务可以简化成分类任务

    什么是机器学习

    机器学习过程

    Created with Raphaël 2.2.0输入大量机器学习资料机器学习算法(将样例输入到模型里)模型(f(x))输出结果

    机器学习方法分类

    监督学习

    监督学习是指利用一组已知类别的样本调整分类器的参数,使其达到所要求性能的过程,也称为监督训练或有教师学习。例如:

    • 图像已经拥有了标定信息
    • 银行已经积累了一定的额客户信息和他们信用卡的信用情况
    • 医院已经积累了一定的病人信息和他们最终确诊是否患病的情况
    • 市场积累了房屋的基本信息和最终成交的金额
      监督学习的算法有如下一些:k近邻、线性回归和多项式回归、逻辑回归、SVM、决策树和随机森林

    非监督学习

    非监督学习,给机器的训练数据没有任何“标记”或者“答案”。它可以用来对没有标记的数据进行分类或者聚类分析,或者对数据进行降维处理(特征提取、特征压缩如PCA )

    半监督学习

    半监督学习是指一部分数据有“标记”或者“答案”,另一部分数据没有的机器学习过程。它更多的用于处理由于各种原因产生标记缺失的情形。这种情况下,我们通常都先使用无监督学习手段对数据做处理,之后使用监督学习手段做模型的训练和预测。

    增强学习

    根据周围环境的情况,采取行动,根据采取行动的结果,学习行动的方式。
    在这里插入图片描述
    无人驾驶、智能机器人这种都属于增强学习。之前我们讲的监督学习和半监督学习是增强学习的基础。

    其它分类

    在线学习和批量学习(离线学习)

    • 批量学习 (Batch Learning)
      批量学习的优点是简单,缺点是不能适应环境变化,需要定时重新批量学习。但是每次重新批量学习,运算量很大。在某些环境变化非常快的情况下,重新批量学习变得不可能。
    • 在线学习(Online Learning)
      在线学习的优点就是批量学习的缺点,能够及时反映新的环境变化。但是同时又会带来新的问题,新的数据可能会带来不好的变化,需要加强对新的数据进行监控。它适用于数据量巨大,完全无法批量学习的情况。

    参数学习和非参数学习

    • 参数学习 Parametric Learning
      一旦学习到了参数,就不在需要原有的数据集。它的定义:假设可以最大程度地简化学习过程,与此同时也限制可以学习到是什么,这种算法简化成一个已知的函数形式,即通过固定数目的参数来拟合数据的算法。
      Logistic Regression、DA(线性判别分析)、朴素贝叶斯和简单神经网络都属于参数学习
    • 非参数学习 Nonparametric Learning
      非参数学习不对模型进行过多的假设,但是非参数学习不等于没有参数。定义:不对目标函数的形式作出强烈假设的算法称为非参数机器学习算法,通过不做假设,它们可以从训练数据中自由地学习任何函数形式,即参数数量会随着训练样本数量的增长的算法。 
      KNN、决策树(比如CART和C4.5)、SVM等都是非参数学习算法。

    其他

    在机器学习领域,有很算法,具体到某个问题,有的算法可能会更好。但是由于数据集和评判标准的不同,还有各种各样别的因素,我们不能认定一种算法绝对比另外一种算法好。因为脱离实际问题去谈算法的好坏,是没有意义的,所以在我们面对一个具体问题的时候,尝试用多种算法进行对比试验,是很有必要的。

    展开全文
  • 这次准备做一下pandas在画图中的应用,要做数据分析的话这个更为实用,本次要用到的数据是pthon机器学习库sklearn中一组叫iris花的数据,里面组要有4个特征,分别是萼片长度、萼片宽度、花瓣长度、花瓣宽度,目标值是...

    这次准备做一下pandas在画图中的应用,要做数据分析的话这个更为实用,本次要用到的数据是pthon机器学习库sklearn中一组叫iris花的数据,里面组要有4个特征,分别是萼片长度、萼片宽度、花瓣长度、花瓣宽度,目标值是3种不同类型的花。

    机器学习的时候在学习好这四个特征后就可以用来预测花的类型了,而图像化分析这些数据就是机器学习中很关键的步骤,接下来我们开始,先导入数据:

    import pandas as pd
    from sklearn import datasets
    from sklearn import preprocessing
    
    
    data = datasets.load_iris()#载入iris数据
    # data = preprocessing.scale(boston.data)#正则化数据
    pd.set_option('display.max_columns', None)
    d1_x = pd.DataFrame(data.data, columns=data.feature_names)
    d1_y = pd.Series(data.target)
    print(d1_x.head())
    print(d1_y.head())

    部分数据展示如下,可以看出有4个不同特征,3种不同的话目标值分别是0,1,2

       sepal length (cm)  sepal width (cm)  petal length (cm)  petal width (cm)
    0                5.1               3.5                1.4               0.2
    1                4.9               3.0                1.4               0.2
    2                4.7               3.2                1.3               0.2
    3                4.6               3.1                1.5               0.2
    4                5.0               3.6                1.4               0.2
    0    0
    1    0
    2    0
    3    0
    4    0
    dtype: int32

    很多时间图像更能直观反映出数据,接下来开始正题:

    from matplotlib import pyplot as plt
    import pandas as pd
    from sklearn import datasets
    from sklearn import preprocessing
    
    
    data = datasets.load_iris()#载入iris数据
    # data = preprocessing.scale(boston.data)#正则化数据
    pd.set_option('display.max_columns', None)
    d1_x = pd.DataFrame(data.data, columns=data.feature_names)
    d1_y = pd.Series(data.target)
    print(d1_x.head())
    print(d1_y.head())
    
    d1_x.plot(linestyle='--', marker='.', alpha=0.5) #DataFrame的画图方式,依赖于matplotlib
    d1_y.plot(linestyle='-', linewidth=1.5, alpha=0.5, color='b', label='type')
    plt.legend()
    plt.show()

    是不是很简单,和之前plt.plot()的画图几乎一样的,结果如下:

    从上图中,比较直观的我可以看出,sepal width与花种类关系不大,其它三个特征则关系密切,根据这个图像分析从而可以进行下一步。

    接下来,看看其它类型的图,由于这里数据不太适合条形图,那自己造一点数据吧:

    from matplotlib import pyplot as plt
    import pandas as pd
    import numpy as np
    
    d1 = pd.DataFrame(np.random.rand(5, 3), columns=['A', 'B', 'C'])
    
    # 方法一
    d1.plot.bar(cmap='summer')
    # 方法二
    #d1.plot(kind='bar', colormap='cool')
    plt.show()

    画条形图有两中方式,看代码,是不是很简单,其它图形就不全部都写出来了,方式都差不多,今天就到这里了。

     

    转载于:https://www.cnblogs.com/yifengjianbai/p/10267599.html

    展开全文
  • 机器学习基础 1.数据的一些概念 萼片长度 萼片宽度 花瓣长度 花瓣宽度 种类 5.1 3.5 1.4 0.2 0(se) 7.0 3.2 4.7 1.4 1(ve) 6.3 3.3 6 2.5 2(vi) 数据整体叫数据集 每一行数据称为一个样本 除...

    机器学习基础


    1.数据的一些概念

    萼片长度 萼片宽度 花瓣长度 花瓣宽度 种类
    5.1 3.5 1.4 0.2 0(se)
    7.0 3.2 4.7 1.4 1(ve)
    6.3 3.3 6 2.5 2(vi)
    • 数据整体叫数据集
    • 每一行数据称为一个样本
    • 除最后一列之外的每一列是样本的一个特征
    • 最后一列称为标记(label)

    2.数据的矩阵表示

    除最后一列外的数据,用矩阵X表示,X(i)X^{(i)}表示第i个样本行,Xj(i)X^{(i)}_j表示第i个样本行第j个特征值

    最后一列的数据,用向量y表示,y(i)y^{(i)}表示第i个样本的标记

    X(i)X^{(i)}也是一个向量,称为特征向量

    3.特征空间

    4.机器学习(监督学习)的基本任务

    • 分类

      • 二分类:垃圾邮件、肿瘤良性还是恶性……

      • 多分类:数字识别、图像识别、信用卡风险评级……

        还有很多复杂问题也可以转化为多分类问题,如2048、围棋、无人驾驶等等

      • 多标签分类(既可以分类为A,也可以分类为B)

    • 回归

      结果是一个连续数字的值,而非一个类别

      如:房屋价格、市场分析、股票……

    一些情况下,回归任务可以简化成分类任务

    5.机器学习的分类

    • 监督学习

      训练数据是拥有标记的,任务:分类和回归

    • 非监督学习

      训练数据没有任何标记

      任务:分类(聚类分析),对数据进行降维处理(特征提取、特征压缩),异常检测

    • 半监督学习

      一部分数据有标记,另一部分没有

    • 增强学习

    6.批量学习(Batch Learning)和在线学习(Online Learning)

    • 批量学习:一次性输入样例

      优:简单

      缺:如何适应环境变化?定时重新批量学习。——运算量大

    • 在线学习:将输出结果和正确结果的差异作为信息,不断训练模型

      优:及时反映新的环境变化

      缺:异常数据会影响模型,需要加强对数据的监控

    7.参数学习和非参数学习

    • 参数学习:一旦学到了参数,就不再需要原有的数据集

    • 非参数学习:不对模型进行过多假设

    非参数不等于没参数!只是不把学习过程当做是学参数

    展开全文
  • 4 个特征值分别为:萼片长度、萼片宽度、花瓣长度、花瓣宽度 目标值为三种不同类别的鸢尾花,分别为: Iris Setosa、Iris Versicolour、Iris Virginica首先导入必要的包:numpy:python第三方库,用于科学计...

    任务描述:
    构建一个模型,根据鸢尾花的花萼和花瓣大小将其分为三种不同的品种。

    b4c029078165af60da09e414e3cab10a.png

    数据集
    总共包含150行数据
    每一行数据由 4 个特征值及一个目标值组成。
    4 个特征值分别为:萼片长度、萼片宽度、花瓣长度、花瓣宽度
    目标值为三种不同类别的鸢尾花,分别为: Iris Setosa、Iris Versicolour、Iris Virginica

    8cb4bf4a1953f2ff2ec02f59333851c8.png

    首先导入必要的包:numpy:python第三方库,用于科学计算matplotlib:python第三方库,主要用于进行可视化sklearn:python的重要机器学习库,其中封装了大量的机器学习算法,如:分类、回归、降维以及聚类

    import numpy as np                
    from matplotlib import colors     
    from sklearn import svm            
    from sklearn.svm import SVC
    from sklearn import model_selection
    import matplotlib.pyplot as plt
    import matplotlib as mpl
    
    In[2]
    
    #若提示缺少matplotlib,则可使用以下命令pip安装matplotlib
    !pip install matplotlib

    Looking in indexes: https://pypi.mirrors.ustc.edu.cn/simple/
    Requirement already satisfied: matplotlib in /opt/conda/envs/python35-paddle120-env/lib/python3.5/site-packages (2.2.3)
    Requirement already satisfied: cycler>=0.10 in /opt/conda/envs/python35-paddle120-env/lib/python3.5/site-packages (from matplotlib) (0.10.0)
    Requirement already satisfied: numpy>=1.7.1 in /opt/conda/envs/python35-paddle120-env/lib/python3.5/site-packages (from matplotlib) (1.15.4)
    Requirement already satisfied: six>=1.10 in /opt/conda/envs/python35-paddle120-env/lib/python3.5/site-packages (from matplotlib) (1.12.0)
    Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /opt/conda/envs/python35-paddle120-env/lib/python3.5/site-packages (from matplotlib) (2.3.0)
    Requirement already satisfied: pytz in /opt/conda/envs/python35-paddle120-env/lib/python3.5/site-packages (from matplotlib) (2018.7)
    Requirement already satisfied: python-dateutil>=2.1 in /opt/conda/envs/python35-paddle120-env/lib/python3.5/site-packages (from matplotlib) (2.7.5)
    Requirement already satisfied: kiwisolver>=1.0.1 in /opt/conda/envs/python35-paddle120-env/lib/python3.5/site-packages (from matplotlib) (1.0.1)
    Requirement already satisfied: setuptools in /opt/conda/envs/python35-paddle120-env/lib/python3.5/site-packages (from kiwisolver>=1.0.1->matplotlib) (40.4.3)

    tep1.数据准备

    (1)从指定路径下加载数据

    (2)对加载的数据进行数据分割,x_train,x_test,y_train,y_test分别表示训练集特征、训练集标签、测试集特征、测试集标签

    #*************将字符串转为整型,便于数据加载***********************
    def iris_type(s):
        it = {b'Iris-setosa':0, b'Iris-versicolor':1, b'Iris-virginica':2}
        return it[s]
    
    In[4]
    
    #加载数据
    data_path='/home/aistudio/data/data5420/iris.data'          #数据文件的路径
    data = np.loadtxt(data_path,                                #数据文件路径
                      dtype=float,                              #数据类型
                      delimiter=',',                            #数据分隔符
                      converters={4:iris_type})                 #将第5列使用函数iris_type进行转换
    #print(data)                                                 #data为二维数组,data.shape=(150, 5)
    #print(data.shape)
    #数据分割
    x, y = np.split(data,                                       #要切分的数组
                    (4,),                                       #沿轴切分的位置,第5列开始往后为y
                    axis=1)                                     #代表纵向分割,按列分割
    x = x[:, 0:2]                                               #在X中我们取前两列作为特征,为了后面的可视化。x[:,0:4]代表第一维(行)全取,第二维(列)取0~2
    #print(x)
    x_train,x_test,y_train,y_test=model_selection.train_test_split(x,              #所要划分的样本特征集
                                                                   y,              #所要划分的样本结果
                                                                   random_state=1, #随机数种子
                                                                   test_size=0.3)  #测试样本占比

    Step2.模型搭建
    C越大,相当于惩罚松弛变量,希望松弛变量接近0,即对误分类的惩罚增大,趋向于对训练集全分对的情况,这样对训练集测试时准确率很高,但泛化能力弱。 C值小,对误分类的惩罚减小,允许容错,将他们当成噪声点,泛化能力较强。
    kernel='linear'时,为线性核
    decision_function_shape='ovr'时,为one v rest,即一个类别与其他类别进行划分,
    decision_function_shape='ovo'时,为one v one,即将类别两两之间进行划分,用二分类的方法模拟多分类的结果。

    #**********************SVM分类器构建*************************
    def classifier():
        #clf = svm.SVC(C=0.8,kernel='rbf', gamma=50,decision_function_shape='ovr')
        clf = svm.SVC(C=0.5,                         #误差项惩罚系数,默认值是1
                      kernel='linear',               #线性核 kenrel="rbf":高斯核
                      decision_function_shape='ovr') #决策函数
        return clf
    
    In[6]
    
    # 2.定义模型:SVM模型定义
    clf = classifier()

    Step3.模型训练

    #***********************训练模型*****************************
    def train(clf,x_train,y_train):
        clf.fit(x_train,         #训练集特征向量
                y_train.ravel()) #训练集目标值
    
    In[8]
    
    #***********************训练模型*****************************
    def train(clf,x_train,y_train):
        clf.fit(x_train,         #训练集特征向量
                y_train.ravel()) #训练集目标值
    
    In[9]
    
    # 3.训练SVM模型
    train(clf,x_train,y_train)

    Step4.模型评估

    #**************并判断a b是否相等,计算acc的均值*************
    def show_accuracy(a, b, tip):
        acc = a.ravel() == b.ravel()
        print('%s Accuracy:%.3f' %(tip, np.mean(acc)))
    
    In[11]
    
    def print_accuracy(clf,x_train,y_train,x_test,y_test):
        #分别打印训练集和测试集的准确率  score(x_train,y_train):表示输出x_train,y_train在模型上的准确率
        print('trianing prediction:%.3f' %(clf.score(x_train, y_train)))
        print('test data prediction:%.3f' %(clf.score(x_test, y_test)))
        #原始结果与预测结果进行对比   predict()表示对x_train样本进行预测,返回样本类别
        show_accuracy(clf.predict(x_train), y_train, 'traing data')
        show_accuracy(clf.predict(x_test), y_test, 'testing data')
        #计算决策函数的值,表示x到各分割平面的距离
        print('decision_function:n', clf.decision_function(x_train))
    
    In[12]
    
    # 4.模型评估
    print_accuracy(clf,x_train,y_train,x_test,y_test)

    trianing prediction:0.819 test data prediction:0.778 traing data Accuracy:0.819 testing data Accuracy:0.778 decision_function: [[-0.5 1.20887337 2.29112663] [ 2.06328814 -0.0769677 1.01367956] [ 2.16674973 0.91702835 -0.08377808] [ 2.11427813 0.99765248 -0.11193061] [ 0.9925538 2.06392138 -0.05647518] [ 2.11742969 0.95255534 -0.06998503] [ 2.05615004 -0.041847 0.98569697] [-0.31866596 1.02685964 2.29180632] [-0.27166251 1.09150338 2.18015913] [-0.37827567 1.14260447 2.2356712 ] [-0.22150749 1.11104997 2.11045752] [-0.18331208 2.10066724 1.08264485] [-0.05444966 0.99927764 2.05517201] [-0.46977766 1.17853774 2.29123992] [-0.05760122 2.04437478 1.01322644] [ 2.1747228 0.93698124 -0.11170404] [-0.13315707 2.12021384 1.01294323] [-0.21752096 2.12102642 1.09649454] [ 2.11427813 0.99765248 -0.11193061] [ 2.16359817 0.96212549 -0.12572366] [-0.21038286 1.08590572 2.12447714] [ 2.21291822 0.9265985 -0.13951672] [-0.13399204 1.06514025 2.06885179] [-0.18016052 1.0555701 2.12459042] [-0.2334671 1.08112064 2.15234646] [-0.08782356 2.0747104 1.01311315] [-0.20324476 1.05078502 2.15245974] [-0.11489433 1.05994888 2.05494545] [ 2.17787437 -0.1081159 0.93024154] [-0.23578369 2.18129137 1.05449232] [-0.20639632 1.09588216 2.11051416] [-0.21038286 1.08590572 2.12447714] [-0.02969547 2.11420989 0.91548558] [-0.12685394 1.03001955 2.09683439] [-0.09496166 2.1098311 0.98513056] [ 2.10547008 -0.07737399 0.97190391] [ 2.11029159 0.98767604 -0.09796763] [ 2.20411017 -0.14842797 0.9443178 ] [-0.20324476 1.05078502 2.15245974] [ 2.19066895 0.97688701 -0.16755596] [-0.16022784 2.10545232 1.05477553] [-0.23661866 1.12621778 2.11040088] [-0.09579663 2.05475752 1.04103911] [ 2.11344315 -0.05742111 0.94397795] [ 2.10231852 0.96772315 -0.07004167] [-0.12203243 2.09506958 1.02696285] [ 2.11029159 0.98767604 -0.09796763] [-0.41248455 1.16296364 2.2495209 ] [-0.16820091 1.08549943 2.08270149] [-0.42045762 1.14301076 2.27744686] [-0.24857827 1.09628845 2.15228982] [-0.27796564 2.18169766 1.09626798] [-0.09264507 1.00966038 2.08298469] [-0.25339978 1.03123843 2.22216135] [-0.05361468 2.05435123 0.99926346] [ 2.15395516 -0.16797456 1.01401941] [-0.12203243 2.09506958 1.02696285] [ 2.06579305 1.08825305 -0.15404611] [-0.11007283 2.12499891 0.98507392] [-0.27166251 1.09150338 2.18015913] [ 2.13652739 0.94736397 -0.08389137] [-0.29789831 1.13181544 2.16608287] [ 2.15163856 0.93219616 -0.08383473] [ 2.1747228 0.93698124 -0.11170404] [-0.11174277 1.01485174 2.09689103] [-0.06872585 2.06951904 0.99920682] [-0.23745364 1.0711442 2.16630944] [ 2.12141623 0.96253178 -0.08394801] [ 2.1627632 -0.09294809 0.93018489] [-0.06557429 1.0244219 2.04115239] [ 2.16758471 0.97210193 -0.13968664] [-0.12203243 2.09506958 1.02696285] [ 2.1293893 0.98248467 -0.11187396] [-0.21038286 1.08590572 2.12447714] [ 2.01962457 1.0786829 -0.09830747] [ 2.18269588 0.95693412 -0.13963 ] [-0.16106282 1.05037873 2.11068408] [ 2.20976665 0.97169564 -0.1814623 ] [-0.03850351 2.03918342 0.9993201 ] [ 2.17555778 0.99205482 -0.1676126 ] [-0.11007283 2.12499891 0.98507392] [-0.07502898 2.15971332 0.91531566] [ 2.13254086 0.93738753 -0.06992839] [ 2.09518042 1.00284385 -0.09802427] [ 1.0045134 2.09385071 -0.09836411] [ 2.24314055 0.89626288 -0.13940344] [-0.09579663 2.05475752 1.04103911] [-0.14910321 1.08030806 2.06879515] [ 2.13652739 0.94736397 -0.08389137] [-0.2334671 1.08112064 2.15234646] [-0.07271239 2.05954259 1.0131698 ] [-0.2739791 2.1916741 1.082305 ] [-0.27564905 1.08152693 2.19412211] [-0.12203243 2.09506958 1.02696285] [ 2.06013657 -0.03187056 0.97173399] [ 2.07608272 1.00803521 -0.08411793] [-0.19443672 2.12581149 1.06862523] [-0.16421438 2.09547587 1.06873851] [-0.3440668 1.12224529 2.22182151] [-0.1180459 2.10504603 1.01299987] [-0.20240979 1.10585861 2.09655118] [-0.17617399 1.06554654 2.11062744] [-0.2477433 2.15136204 1.09638126] [-0.2334671 1.08112064 2.15234646] [ 2.11029159 0.98767604 -0.09796763]]

    Step5.模型使用

    def draw(clf, x):
        iris_feature = 'sepal length', 'sepal width', 'petal lenght', 'petal width'
        # 开始画图
        x1_min, x1_max = x[:, 0].min(), x[:, 0].max()               #第0列的范围
        x2_min, x2_max = x[:, 1].min(), x[:, 1].max()               #第1列的范围
        x1, x2 = np.mgrid[x1_min:x1_max:200j, x2_min:x2_max:200j]   #生成网格采样点
        grid_test = np.stack((x1.flat, x2.flat), axis=1)            #stack():沿着新的轴加入一系列数组
        print('grid_test:n', grid_test)
        # 输出样本到决策面的距离
        z = clf.decision_function(grid_test)
        print('the distance to decision plane:n', z)
        
        grid_hat = clf.predict(grid_test)                           # 预测分类值 得到【0,0.。。。2,2,2】
        print('grid_hat:n', grid_hat)  
        grid_hat = grid_hat.reshape(x1.shape)                       # reshape grid_hat和x1形状一致
                                                                    #若3*3矩阵e,则e.shape()为3*3,表示3行3列   
     
        cm_light = mpl.colors.ListedColormap(['#A0FFA0', '#FFA0A0', '#A0A0FF'])
        cm_dark = mpl.colors.ListedColormap(['g', 'b', 'r'])
     
        plt.pcolormesh(x1, x2, grid_hat, cmap=cm_light)                                   # pcolormesh(x,y,z,cmap)这里参数代入
                                                                                          # x1,x2,grid_hat,cmap=cm_light绘制的是背景。
        plt.scatter(x[:, 0], x[:, 1], c=np.squeeze(y), edgecolor='k', s=50, cmap=cm_dark) # 样本点
        plt.scatter(x_test[:, 0], x_test[:, 1], s=120, facecolor='none', zorder=10)       # 测试点
        plt.xlabel(iris_feature[0], fontsize=20)
        plt.ylabel(iris_feature[1], fontsize=20)
        plt.xlim(x1_min, x1_max)
        plt.ylim(x2_min, x2_max)
        plt.title('svm in iris data classification', fontsize=30)
        plt.grid()
        plt.show()
    
    In[14]
    
    # 5.模型使用
    draw(clf,x)

    grid_test: [[4.3 2. ] [4.3 2.0120603] [4.3 2.0241206] ... [7.9 4.3758794] [7.9 4.3879397] [7.9 4.4 ]] the distance to decision plane: [[ 2.04663576 1.0980928 -0.14472856] [ 2.04808477 1.09663836 -0.14472313] [ 2.04953377 1.09518392 -0.1447177 ] ... [-0.21454554 0.96016146 2.25438408] [-0.21309653 0.95870702 2.25438951] [-0.21164753 0.95725258 2.25439495]] grid_hat: [0. 0. 0. ... 2. 2. 2.]

    71f0623d7b3afef1826793152d068749.png
    展开全文
  • learn库实现机器学习Iris数据集from sklearn import datasetsiris=datasets.load_iris()# 数据iris.data# 种类iris.target# 种类名称iris.target_name借用matplotlib绘制散点图iris.data 中四个值分别为:萼片的长宽...
  • 它们的区别在于萼片长度和宽度以及花瓣长度和宽度,根据这些特征来判断到底是哪种花 首先导入机器学习库里的数据,数据格式如下 : 机器学习代码: # 导入需要的包 from sklearn import neighbors from ...
  • 文章目录1、数据集处理2、不同特征...数据集中含有3类共150条鸢尾花基本数据,其中3个种类山鸢尾,变色鸢尾,维吉尼亚鸢尾各50条数据,包括了萼片长度,萼片宽度,花瓣长度,花瓣宽度4个特征。 1、数据集处理 # 自己来
  • 四个特征值:萼片长度、萼片宽度、花瓣长度、花瓣宽度 三个目标值:山鸢尾、变色鸢尾、维吉尼亚鸢尾 导入相应的函数 from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split...
  • 机器学习入门实践——鸢尾花分类

    千次阅读 2020-10-12 20:12:30
    4 个特征值分别为:萼片长度、萼片宽度、花瓣长度、花瓣宽度 目标值为三种不同类别的鸢尾花,分别为: Iris Setosa、Iris Versicolour、Iris Virginica 首先导入必要的包: numpy:python第三方库,用于科学计
  • 麦子学院深度学习基础 —— 机器学习 —— 最邻近规则分类(K-Nearest Neighbor)KNN 算法应用 标签 : 深度学习基础 4.2 最邻近规则分类 KNN 算法应用 1.数据集介绍 鸢尾花数据集: 150 个实例 萼片长度(sepal ...
  • 机器学习包sklearn中集成了各种各样的数据集,其中就包括鸢尾花数据集(Iris)是最简单的分类任务数据集。 鸢尾花数据集共有3个分类类别,分别是山鸢尾(Iris-setosa)、变色鸢尾(Iris-versicolor)和维吉尼亚鸢尾...
  • 1 数据集介绍:虹膜 150个实例萼片长度,萼片宽度,花瓣长度,花瓣宽度 (sepal length, sepal width, petal length and petal width)类别: ... 利用Python的机器学习库sklearn: SkLearnExample.pyfrom sklearn
  •  鸢尾花数据集采集的是鸢尾花的测量数据以及其所属的类别。每个类的观察值数量是均等的。... 测量数据包括:萼片长度(cm)、萼片宽度(cm)、花瓣长度(cm)、花瓣宽度(cm)。 类别共分为三类:Iris Se...
  • 鸢尾花数据集是机器学习中比较常用的,数据集包含150条数据,共分为3类:setosa, versicolor, virginica,每类50条数据,每个数据包含4个属性,为萼片长度,萼片宽度,花瓣长度以及花瓣宽度。 不同于逻辑回归,...
  • 本文拟解决iris鸢尾花所属类型的问题,其中这种花的特征有sepal length(萼片长度)、sepal width(萼片宽度)、petal length(花瓣长度)、petal width(花瓣宽度)。试使用kNN算法、决策树、朴素贝叶斯进行分类。 ...
  • 4 个特征值分别为:萼片长度、萼片宽度、花瓣长度、花瓣宽度 目标值为三种不同类别的鸢尾花,分别为: Iris Setosa、Iris Versicolour、Iris Virginica首先导入必要的包:numpy:python第三方库,用于科学计...
  • 本文拟解决iris鸢尾花所属类型的问题,其中这种花的特征有sepal length(萼片长度)、sepal width(萼片宽度)、petal length(花瓣长度)、petal width(花瓣宽度)。试使用kNN算法、决策树、朴素贝叶斯进行分类。 ...
  • 当我们拿到一个数据集的时候,往往数据集中每一...数据集中对150个鸢尾花样本的描述:萼片长度,萼片宽度,花瓣长度,花瓣宽度 当我们读取数据时会读到一个 150x4 的矩阵 X(150x4),但是四维的特征空间不便于我们或...
  • import numpy as np import matplotlib.pyplot as plt from sklearn import datasets, linear_model, ...每个数据包含4个属性:sepal萼片长度、萼片宽度、petal花瓣长度、花瓣宽度 ''' def load_data_classification().
  • 原创:谭婧一朵花,在诗人眼里是风雨兼程的铿锵玫瑰,在人工智能科学家眼中则非常不同。他们将玫瑰花的数据集分为4个维度的特征,花瓣宽度、花瓣长度、萼片长度、萼片宽度。虽然无论...
  • 4 个特征值分别为:萼片长度、萼片宽度、花瓣长度、花瓣宽度 目标值为三种不同类别的鸢尾花,分别为: Iris Setosa、Iris Versicolour、Iris Virginica 数据集中每朵鸢尾花叫做一个数据点,它的品种叫做它的标签 ...
  • 任务描述: ...4 个特征值分别为:萼片长度、萼片宽度、花瓣长度、花瓣宽度 目标值为三种不同类别的鸢尾花,分别为: Iris Setosa、Iris Versicolour、Iris Virginica 首先导入必要的包: numpy:p...
  • 欢迎关注哈希大数据微信...而本期我们将介绍另外一种有监督的机器学习分类模型----决策树(也可以实现基本的回归),重点介绍决策树的基本原理和实现,并且借助python的sklearn库中的决策树算法实现上述两类数据...

空空如也

空空如也

1 2 3 4
收藏数 64
精华内容 25
关键字:

机器学习花瓣萼片