zoukankan      html  css  js  c++  java
  • 机器学习及scikit-learn

     一、机器学习以及scikit-learn

      1. 机器学习基本步骤:

        (1)定义一系列函数  =>   (2)定义函数的优劣  =>  (3)选择最优函数

      2.什么是scikit-learn?

        (1)面向python的免费机器学习库

        (2)包含分类、回归、聚类算法,比如:SVM、随机森林、k-means等

        (3)包含降维、模型选择、预处理等算法

        (4)支持Numpy和Scipy数据结构

        (5)用户

        (6)安装:pip install scikit-learn

            pip install scikit-learn

       3.上手:

        (1)加载数据集

          iris

          digits

        (2)在训练集上训练模型

          svm模型

          .fit()训练模型

        (3)在测试集上测试模型

          .predict()进行预测

        (4)保存模型

          .pickle.dumps()

       4.使用scikit-learn的流程

          准备数据集===》选择模型===》训练模型===》测试数据

          数据处理    根据任务选择  根据经验  预测

          特征工程    模型      设动参数  识别

          训练集、    分类模型    交叉验证

          测试集分割   回归模型    确定最优参数

                  聚类模型

       5.准备数据集:

        (1)数据准备:

            数据集格式

            二维数组,形状(n_samples,n_features),行数是样本的个数,列数是特征的个数

            使用np.reshape()转换数据集的形状

        (2)特征工程

            特征提取,如图片的特征提取

            特征归一化(normalization),

        (3)train_test_split()分割训练集、测试集

          分类、回归、聚类

          训练模型

           (4)训练模型

          Estimator对象

          从训练数据学习得到的

          可以是分类算法、回归算法或者是特征提取算法

          fit方法用于训练Estimator

          Estimator的参数可以训练前初始化,或者之后更新

          get_params()返回之前定义的参数

          score()对Estimator进行评分

            回归模型:使用“决定系数”评分(Coefficient of Determination)

            分类模型:使用“准确率”评分(accuracy)训练误差  

        6.调整参数

          (1)依靠经验

          (2)依靠实验、交叉验证cv(cross validation)

          

    二、机器学习:问题描述

      1.“学习”问题通常包含n个样本数据(训练样本),然后预测未知数据(测试样本)的属性

      2.每个样本包含多个属性(多维数据)被称作“特征”,特征的归一化,将数据范围缩放,缩放进入同一个范围。

      当两个特征的范围不一样的时候,θ1是房屋大小,θ2是卧室个数,当两个值不一样的时候,学习出来的可能是下面作图所示的椭圆形状,如右图所示做归一化,直接进行缩放操作,在scikit_learn中做归一化的操作是:preprocessing.scale

      

      3.分类:

        (1)监督学习,训练样本包含对应的标签,“如识别问题”

            分类问题,样本标签属于两个或者多各类

            回归问题,样本标签包括一个或者多个连续变量

        (2)无监督学习,训练样本的属性不包含对应的“标签”,如聚类问题

        (3)训练集vs验证集vs测试集

        

        

        在没有生产的阶段,没有新的数据,通常会将原始数据集分为三部分:训练集、测试集和验证集,训练集用来训练模型,验证集用来选择最佳模型,调整参数,测试集用来测试模型

        

  • 相关阅读:
    好记性不如烂笔头,要经常把学习的东西记录下来
    liunx git 已经设置了ssh key 还是需要帐号和密码的解决方法。
    解决composer ssl required for SSL/TLS 证书配置
    composer SSL: Handshake timed out 解决办法
    小程序解密报错:IV passed is 24 bytes long which is longer than the 16 expected by se
    PHP面向对象试题(基础部分)
    php 单例模式
    在Thinkphp里面加入验证码插件
    phpstorm 修改默认注释
    用PHP去掉文件头的Unicode签名(BOM)
  • 原文地址:https://www.cnblogs.com/bigdata-stone/p/10315494.html
Copyright © 2011-2022 走看看