??xml version="1.0" encoding="utf-8" standalone="yes"?>国产精品亚洲二区在线观看,亚洲欧美日韩综合久久久久,亚洲国产精品无码中文lvhttp://m.tkk7.com/zhuyuanxiang/zh-cnSun, 11 May 2025 06:13:06 GMTSun, 11 May 2025 06:13:06 GMT60Office 2010 l验ȝhttp://m.tkk7.com/zhuyuanxiang/archive/2019/09/20/434677.htmlzYx.TomzYx.TomFri, 20 Sep 2019 01:41:00 GMThttp://m.tkk7.com/zhuyuanxiang/archive/2019/09/20/434677.htmlhttp://m.tkk7.com/zhuyuanxiang/comments/434677.htmlhttp://m.tkk7.com/zhuyuanxiang/archive/2019/09/20/434677.html#Feedback0http://m.tkk7.com/zhuyuanxiang/comments/commentRss/434677.htmlhttp://m.tkk7.com/zhuyuanxiang/services/trackbacks/434677.html1. 如何讄蓝底白字Q?/p>

{:点击菜单上的“页面布局”→“页面颜艜y,可以选择喜欢的页面颜Ԍ字体颜色也会跟着发生改变?/p>

补充Q如果不喜欢相应的页面颜色中pȝ自动讄的字体颜Ԍ可以点击菜单上的“开始”→“样式”→“正文”,讄“字体颜艜y就可以了?/p>

 

2. 如何输入数学公式Q?/p>

{:使用Latex输入公式Q不q语法与LatexE有区别。Latex的“{}”功能用“(Q”替代了。熟悉Latex后,使用q个公式~辑器会觉得非常方便。对于数学公式的输入Ҏ下蝲一个PDF文g《LATEX Mathematical Symbols》,里面都可以查到?/p>

❶开始输入公式:按住"Alt"再按"="Q会出现了一个公式输入框Q上方的工具栏也变成了公式编辑器栏?/p>

❷命令结构:命o是由反斜?\"开始的Q紧跟着一串字W,以空格结束。例如:\alpha׃输入?/p>

❸常见运符Q?/p>

  • 偏微分算子:“\partial?/li>
  • 极限Q“\limit?/li>
  • U分Q“\int?/li>
  • 求和Q“\Sigma?/li>
  • 梯度子Q也是倒三角)Q“\nabla ?/li>
  • 点乘Q如内积Q:“\bullet”、“\cdot?/li>
  • 叉乘Q如外积、旋度)Q“\times?/li>
  • 字母上方的向量箭_"\hvec "。如果a是一个向量,那么"a\hvec  "p在a上方昄那个头Q注意是两个I格Q?/li>
    • 字母上方的其他符P\bar, \check, \dot, \hat, \hvec, \vec, \tilde, etc…)
  • 根号Q?\sqrt "

❹分式:是普通的"/"Q打完后按下I格变上下格式了。ؓ了保证将分母和分子都正确得框入,可以使用“(Q”,括号打多了,pȝ会自动帮你去掉?

  • 如果输入(ab+c)/(d)。分子与分母的括号都会被自动去除?/li>
  • 如果输入ab+c/dQ那么得到的是ab+(c/d)Q括h我添加ؓ了区分含义的?/li>

Z下标Q用括号“(Q”将需要上下标的内容包括v来?/p>

  • 上标Q“^”?/li>
  • 下标Q“_”?/li>

ȝ可打:

U分W号上下限,可以直接q着?\int_a^b "。其中aZ限,bZ限?/p>

q箋两个命oQ或后面一个是q算W)Q可以直接连着打“\sqrt\pi”?

❼对齐公式数l:可以使用@?strong>&来实玎ͼ?code>\eqarray(x+1&=2@1+2+3+y&=z@3/x&=6)<space>

 

❽数学公式{化成U文本:选中数学公式Q选择拯后,在记事本中粘_可以得到公式的原始输入文本Q就可以q行文本U别的数学公式修改了?

  • MathMLQ数学标记语aQ是一U基于XMLQ标准通用标记语言的子集)的标准,用来在互联网上书写数学符号和公式的置标语a?/li>
  • U性格式:cM于Latex的文本,方便~辑?/li>
  • 专业格式Q显C成数学公式的方式,方便阅读?/li>

 

自定义设|:点击菜单中的“设计”→“公式”→“工具”就可以讄?/p>

  • 自动表辑ּ转换C业格式。缺点就是输入错误后不好再修改编辑,但是如果不自动更斎ͼ需要自己写VBAҎ有的数学公式q行全部更新?/li>


zYx.Tom 2019-09-20 09:41 发表评论
]]>
《统计学习方法》的MW记http://m.tkk7.com/zhuyuanxiang/archive/2019/09/17/434659.htmlzYx.TomzYx.TomTue, 17 Sep 2019 01:39:00 GMThttp://m.tkk7.com/zhuyuanxiang/archive/2019/09/17/434659.htmlhttp://m.tkk7.com/zhuyuanxiang/comments/434659.htmlhttp://m.tkk7.com/zhuyuanxiang/archive/2019/09/17/434659.html#Feedback0http://m.tkk7.com/zhuyuanxiang/comments/commentRss/434659.htmlhttp://m.tkk7.com/zhuyuanxiang/services/trackbacks/434659.html

全书总评

  • 书本印刷质量Q? 星。印h楚,排版合适,错误很少?
  • 著作~写质量Q? 星。自学机器学习的必备?
    • 优点
      • 全书一直围l着l计学习中的有监督学习描qͼ内容不深Q基本算法都有所介绍Q?
      • 内容的组l是从抽象到具体的思维模式Q比国外的教材易于理解;
      • 是自学统计学习和机器学习的推荐用书?
    • ~点
      • 基础部分讲解~少理论Q学完后无法理解Q不利用学以致用。例如:感知器的损失函数Q应该是l计学习的核心思想Q那么损失函数在整个法中的位置Q以及如何选择损失函数都需要说明清楚,才能够指导后面各U其他机器学习方法的理解?
      • 使用的方法没有导入的原因和出处,学习q程中会产生比较大的跌感,延箋性不뀂例如:随机梯度下降法,只是说明用于经|络的优化需要用随机梯度下降Q而实际上随机梯度下降是ؓ了满_U学习的需要,如果是批量学习可以直接用梯度学习算法实现?
    • ȝQ瑕不掩瑜,l合 “西瓜书?[周志华,2018] 一L?
  • W记目的Q记录重点,方便回忆?

C01. l计学习Ҏ概论

  • q一章都是概念和l论Q如果读者能够透过概念明白里面实际操作的内容Q那可以快速浏览此书,否则准备U和W认真精L能收莗?
  • 后面的各章内容相对独立,读者既可以q箋学习Q也可以仅选择自己感兴的内容?

l计学习

l计学习D

  • l计学习 (statistical learning): 计算机基于数据构建概率统计模型,q运用模型对数据q行预测与分析的一门学U?
    • 因此l计学习也称为统计机器学?(statistical machine learning).
  • l计学习的主要特?
    • 理论基础
      • 数学基础Q微U分、线性代数、概率论、统计学、计理论、最优化理论
      • 其他基础Q信息论、计机U学及应用相关的U学{多个领域的交叉学科
      • 在发展中形成自己独立的理ZpMҎ论?
    • 应用基础Q计机及网l;
    • 研究对象Q数据,是数据驱动的学科Q?
    • 研究目的Q对数据q行分类和预;
    • 研究手段Q通过l计学习Ҏ构徏模型Qƈ应用模型q行分类和预;

l计学习的目?/h3>
  • 模型Q学习什么样的模?
  • {略Q如何学习模??使模型能够对数据q行准确地分cd预测
  • 法Q如何提高模型的学习效率

l计学习的研I?/h3>
  • l计学习Ҏ (statistical learning method): 开发新的学习方法;
  • l计学习理论 (statistical learning theory): 探求l计学习Ҏ的有效性与效率Q以及统计学习的基本理论问题Q?
  • l计学习应用 (application of statistical learning): 统计学习方法应用到实际问题中去Q解军_际问题?

监督学习

  • 监督学习的Q务:是学习一个模型,使模型能够对Ll定的输入,及其相应的输出做Z个好的预?

基本概念

  • 输入I间Q输入数据所有可能取值的集合Q集合中元素的个数可以有限,也可以是整个I间Q?
  • 输出I间Q输出数据所有可能取值的集合Q集合中元素的个数可以有限,也可以是整个I间Q?
  • 假设I间Q由输入I间到输出空间的映射的集合,卛_供选择的模型构成的I间Q?
  • 特征I间Q所有特征向量存在的I间?
    • 每个具体的输入是一个实?(instance), 通常q征向?(feature vector) 表示?
  • l计学习中的有监督学习根?“输入变量??“输出变量?的不同主要包?
    • 分类问题Q输出变量ؓ有限个离散变量的预测问题Q?
    • 回归问题Q输入变量与输出变量均ؓq箋变量Q?
    • 标注问题Q输入变量与输出变量均ؓ变量序列的预问题;
  • 联合概率分布Q输入变量与输出变量遵@联合分布Q?

问题的Ş式化描述

  • 在学习过E中Q学习系l(也就是学习算法)试图通过l定的训l数据集合中的样本带来的信息来学习得到模型?

l计学习三个要素

  • l计学习Ҏ = 模型 + {略 + 法

模型

  • 主要问题Q学习什么样的模型?
  • 模型的假讄_包含所有可能的条g概率分布或决{函敎ͼ即由一个参数向量决定的函数族,也称为参数空?(parameter space)?
  • 模型分类
    • 非概率模型:由决{函数表C的模型Q?
    • 概率模型Q由条g概率表示的模型;

{略

  • 主要问题Q按照什么样的准则,学习得到最优的模型Q或者从假设I间中选择最优的模型?
  • 基本概念
    • 损失函数 (loss function) 或代价函?(cost function): 度量模型一ơ预的好坏Q?
    • 风险函数 (risk function) 或期望损?(expected loss): 度量q_意义下模型预的好坏?
    • l验风险 (empirical risk) 或经验损?(empirical loss): 表示模型与训l数据的破例E度Q即模型训练h集的q_损失Q当h定w于无穷Ӟl验风险D期望风险Q?
    • l构风险 (structural risk): 表示模型先验知识Q例如:模型复杂度的正则化项 (regularizer) 或惩|项 (penalty term)?
  • 常用的损失函?
    • 0-1 损失函数
    • qx损失函数
    • l对值损失函?
    • Ҏ损失函数或对C然损失函?
  • 学习目标
    • 理想状态:是选择期望风险或期望损失最的模型Q希望可以提供无限的数据训练Q?
    • 现实状态:是选择l验风险或经验损失最的模型Q因为只能提供有限的数据训练Q?
  • l验风险矫正Q当h定wq小ӞҎ出现 “过拟合?问题Q所以需要对l验风险q行矫正Q经验风险最化 + l构风险最化
    • l验风险最化 (empirical risk minimization, ERM): 极大似然估计
    • l构风险最化 (structural risk minimization, SRM): 最大后验估?

  • l计学习是基于训l数据集Q根据学习策略,从假讄间中选择最优模型,最后需要考虑用什么样的计方法求解最优模型?
  • 卌方法。统计学习的法p{化ؓ求解最优化问题的算法?
    • 有显式的解析解的最优化问题Q?
    • 无显式的解析解的最优化问题Q需要用数D的Ҏ求解?
      • 如何保证扑ֈ全局最优解Q?
      • 如何保证求解的过E高效?

模型的评C选择

  • 1.4~1.7, 与模型选择有关的问题?
  • 1.8~1.10, 与模型应用有关的问题?

模型评估

  • 学习Ҏ评估的标?
    • Z损失函数的模型的训练误差 (training error): 用来评估一个学习问题是否容易学?
    • Z损失函数的模型的试误差 (test error): 用来评估一个模型是否具备更有效的预?
  • 泛化能力 (generalization ability): 学习ҎҎ知数据的预测能力

模型选择

  • q拟?(over-fitting): 学习旉择的模型所包含的参数过多,以至于模型对已知数据预测较好Q未知数据预较差的问题
  • 模型选择的常用方?
    • 正则?
    • 交叉验证

正则化与交叉验证

交叉验证

  • 交叉验证 (cross validation)
    • 在数据充xQ随机地数据切分成三个部分Q训l集、验证集和测试集?
      • 选择寚w证集有最预误差的模型?
    • 训练?(training set): 用来训练模型Q?
    • 验证?(validation set): 用来选择模型Q?
    • 试?(test set): 用来评估模型?
  • 交叉验证的常用方?
    • 单交叉验证:随机地将数据分成两个部分Q?0% 的数据ؓ训练集,30% 的数据ؓ试集,选择试误差最的模型Q?
    • S 折交叉验?
      • 随机地将数据分成 S 个互不相交的大小相同的部?
      • 然后利用 S-1 个部分的数据训练Q? 个子集测试模型,
      • 再将q一个过E对所有可能的选择重复q行Q?
      • 最后选择 S ơ评中q_试误差最的模型?
    • 留一交叉验证Q当 S=N 旉用的 S 折交叉验证,适用于数据极度缺乏的情况下?N 为给定数据集的容量)

泛化能力

泛化误差

  • 泛化能力 (generalization ability): 是指学习Ҏ学习到的模型Ҏ知数据的预测能力
  • 泛化误差 (generalization error): 是指学到的模型对未知数据预测产生的误差,反映了学习方法的泛化能力?

生成模型与判别模?/h2>
  • 生成模型 (generative model): 模型表示了给定输?X 产生输出 Y 的生成关pR?
    • 特点
      • q原合概率分布;
      • 学习收敛速度快;
      • h定w增加Ӟ能够更好地D真实模型Q?
      • 存在隐变量时Q仍然可以用?
    • 应用Q朴?Bayes Ҏ和隐马尔可夫模型 (Hidden Markov Model, HMM);
    • 注:生成模型是比较难理解的概念,HMM 是理解生成模型比较好的途径Q如果对 HMM 感兴可以参?
      • 单了解:[周志华,2018] P320
      • 深入理解Q[Rabiner, 1989]
  • 判别模型 (discriminative model): 由数据直接学习决{函数或者条件概率分布作为预的模型
    • 特点
      • 直接学习得到条g概率分布或者决{函敎ͼ
      • 直接面对预测Q学习的准确率更高;
      • Z参数是直接学习得到的Q因此可以对数据q行各种E度上的抽象、定义和使用特征Q简化学习问题?
    • 应用Qk q邻法、感知机、决{树、Logistic 回归模型、最大熵模型、支持向量机、提升方法和条g随机场等

分类问题

  • 分类?(classifier): 监督学习从数据中学习得到的分cL型或分类决策函数?
  • 分类 (classification): 利用分类器对新输入的数据q行输出的预?
  • 解决分类问题的两个过E?
    • 学习q程Q根据已知的训练数据集利用有效的“学习方法”得C个分cdQ?
    • 分类q程Q利用学习得到的分类器对新输入的实例q行分类?
  • 评h分类器性能的指标:分类准确?(accuracy), 卛_于给定的试数据集,分类器正分cȝhCL本数之比?
    • 二类分类问题常用的评h标:_?(precision) 与召回率 (recall)?
  • 解决分类问题的常用方法:k q邻法、感知机、朴?Bayes 法,决策树、决{列表、Logistc 回归模型、支持向量机、提升方法等

标注问题

  • 标注问题Q是分类问题的推q,也是更复杂的l构预测问题的简单Ş式?
    • 输入是一个观序列;
    • 输出是一个标记序列或状态序列?
    • 目标是通过学习得到能够对观序列给出标记序列作为预的模型?
  • 解决标注问题的两个过E:学习q程 ?标注q程
  • 评h标注问题的指标:准确率、精率和召回率?
  • 解决标注问题的常用方法:?Markov 模型和条仉机场?

回归问题

  • 回归 (regression): 用于预测输入变量Q自变量Q和输出变量Q因变量Q之间的关系?
  • 回归模型Q表CZ输入变量到输出变量之间的映射关系的函数?
    • {h于:函数拟合?
  • 解决回归问题的两个过E:学习q程和预过E?
  • 回归问题的分c?
    • 按输入变量的个数Q一元回归和多元回归Q?
    • 按输入变量和输出变量之间的关p:U性回归和非线性回归?
  • 回归学习最常用的损失函敎ͼqx损失函数Q求解^Ҏ失函数可以用最二乘法?

C03. k q邻?/em>

  • k q邻?(k-nearest neighbor, k-NN) 是一个基本且单的ҎQ用于分cM回归?
    • 输入为实例的特征向量Q对应于特征I间的点Q?
    • 输出为实例的cdQ可以取多个cR?
  • 基本思想
    • 假设l定一个训l数据集Q其中的实例cd已经定Q?
    • Ҏ输入的实例分cLQ根据其 k 个最q邻的训l实例的cdQ通过多数表决{方式进行预?
    • 不具有显式的学习q程?
    • 实际上利用训l数据集对特征向量空间进行切分,q作为其分类?“模型”?
  • k q邻的模?
    • 对应于基于训l数据集对特征空间的一个划分?
    • 当训l集、距d量、k 值及分类决策规则定后,输入实例所属类别也唯一定?
  • k q邻法的三个要素
    • 学习准则Q距d量,常用Ƨ氏距离Q(距离定义Q[Duda, 2003]
    • k 值的选择Q反映了q似误差与估计误差之间的权衡?
      • k D大时Q近D差会增大Q估计误差会减小Q模型也简单;
      • k D时Q近D差会减少Q估计误差会增大Q模型也复杂?
      • 可以用交叉验证的方式选择最?k 倹{?
    • 分类决策规则Q多数表册?(marjority voting rule), {h?l验风险最化?
  • k q邻法的实现Z kd ?/em>。(了解卛_Q实际应用中大多使用的是已经成熟的Y件包Q?
    • kd 树是一U便于对 k l空间中的数据进行快速检索的数据l构Q?
    • kd 树是二叉树,表示?k l空间的一个划分;
    • kd 树的每个圣战对应?k l空间划分中的一个超矩Ş区域Q?
    • 利用 kd 树可以省d大部分数据点的搜索,从而减搜索的计算量?
  • 学习ȝ
    • 了解卛_Q因为面寚wl问题效果很差,需要考虑降维操作。[周志华,2018] P225

C05. 决策?(decision tree)

  • 决策树模?/strong>
    • 决策树是一U基本方法,用于分类与回归?
      • 本章主要讨论的是分类决策树?
    • 分类决策树模?
      • 定义Q是Z特征对实例进行分cȝ树Şl构?
      • 模型的组成结?
        • l点 (node)
          • 内部l点 (internal node)
          • 叶结?(leaf node)
        • 有向?(directed edge)
      • 分类决策树可以{换成一?if-then 规则的集合;
        • 决策树的根结点到叶结点的每一条\径构Z条规则;
        • 路径上内部结点的特征对应着规则的条Ӟ而叶l点的类对应着规则的结论?
        • 重要的性质Q互斥ƈ且完备,卛_覆盖?
          • 覆盖是指实例的特征与路径上的特征一致或实例满规则的条件?
      • 也可以看作是定义在特征空间与cȝ间上的条件概率分布?
        • q个条g概率分布定义在特征空间的一个划分上Q?
        • 特征空间划分ؓ互不怺的单元或区域Q?
        • q在每个单元定义一个类的概率分布就构成了一个条件概率分布?
        • 决策树分cLQ将l点的实例分到条件概率大的类中?
      • 主要优点Q可L强Q分c速度快?
  • 决策树学?
    • 学习目的
      • Ҏl定的训l数据集Q构Z个与训练数据拟合很好Qƈ且复杂度的决策树,使之能够对实例进行正的分类?
      • 决策树与训练数据的矛盾较,同时q具有较好的泛化能力?
      • 也可以看作由训练数据集估计条件概率模?
        • 模型对训l数据拟合的效果很好Q?
        • 模型Ҏ知数据有很好的预?
      • 从所有可能的决策树中选取最优决{树?NP 完全问题Q?
        • 现实中采用启发式Ҏ学习ơ优的决{树?
    • 学习准则Q损失函数最化?
      • 损失函数是一U正则化的极大似然函?
    • 学习法
      • 递归地选择最优特征,q根据该特征对训l数据进行分Ԍ使之对各个数据集有一个最好的分类的过E?
  • 决策树的学习法包括 3 个部?
    • 特征选择
      • 特征选择的目的在于选取对训l数据能够分cȝ特征Q提高决{树学习的效率;
      • 特征选择的关键是其准?
        • h集合 D 对特?A ?strong>信息增益 最?
          • 信息增益定义为集?D 的经验熵与特?A 在给定条件下 D 的经验条件熵之差?
            • 熵:表示随机变量不确定性的度量。也UCؓl验c?
            • 条g熵:定义?X l定条g?Y 的条件概率分布的熵对 X 的数学期望。也UCؓl验条gc?
          • 信息增益表示得知特征 X 的信息而得类 Y 的信息的不确定性减的E度?
          • 信息增益{h于训l数据集中类与特征的互信息?
          • 信息增益依赖于特征,信息增益大的特征h更强的分c能力?
        • h集合 D 对特?A ?strong>信息增益?/strong> 最?
          • Z避免信息增益对取D多的特征的偏重,使用信息增益比来代替Q?
          • 信息增益比:特征 A 对训l数据集 D 的信息增益与训练数据?D 关于特征 A 的值的熵之比?
        • h集合 D ?strong>基尼指数 最?
    • 树的生成
      • 计算指标Q再Ҏ准则选取最优切分点Q从根结点开发,递归C生决{树?
      • 通过不断地选择局部最优的特征Q得到可能是全局ơ优的结果?
    • 树的剪枝Q将已经生成的树q行化的q程?
      • 目的Q由于生成的决策树存在过拟合问题Q需要对它进行剪枝,以简化学到的决策树?
      • 剪枝的准则:极小化决{树整体的损失函数或代h函数Q等价于正则化的极大似然估计?
      • 剪枝的分c?
        • 预剪枝:也叫分支停止准则。在决策树生成过E中Q对每个l点在划分前先进行估计,若当前结点的划分不能带来决策树泛化性能提升Q则停止划分q将当前l点标记为叶l点Q?
        • 后剪枝:先从训练集生成一完整的决策树,然后自底向上地对非叶l点q行考察Q若该l点对应的子树替换ؓ叶结点能带来决策树泛化性能提升Q则该子树替换为叶l点?
    • 常用的学习算?
      • ID3: 在决{树的各个结点上应用信息增益准则选择特征Q递归地构建决{树。相当于用极大似然法q行概率模型的选择?
      • C4.5: 在决{树的各个结点上应用信息增益比准则选择特征Q递归地构建决{树?
      • CART: 既可用于分类Q也可用于回归?
        • {h于递归C分每个特征,输入空间即特征I间划分为有限个单元Qƈ在这些单元上定预测的概率分布,也就是在输入l定的条件下输出的条件概率分布?
        • CART 法的两个过E?
          • 决策树生成:Z训练数据集生成决{树Q要量大;
            • 回归树生?
              • 用^方误差最准则求解每个单元上的最优输出倹{?
              • 回归树通常UCؓ最二乘回归树?
            • 分类树生?
              • 用基指数选择最优特征,q决定该特征的最优二值切分点?
              • 法停止计算的条?
                • l点中的h个数于预定阈|
                • h集的基尼于预定阈|
          • 决策树剪?
            • 用验证数据集对已l生成的树进行剪枝,剪枝的标准ؓ损失函数最,Z标准选择最优子树?
            • 可以通过交叉验证法对用于验证的独立数据集上的子树序列q行试Q从中选择最优子树?
          • [Duda, 2003] P320, CART 作ؓ通用的框Ӟ定义?6 个问?
  • 决策树的预测
    • Ҏ的数据,利用决策树模型进行分cR?
  • 学习ȝ
    • 法 (5.1, 5.2, 5.6) + 例题 ( 5.1, 5.2, 5.3, 5.4 ) 通过法和例题可以增强理解;
    • 损失函数的定义可以进一步参?“不U度?指标 [Duda, 2003] P320, ?“纯度?指标 [周志华,2018] P75
      • “不U度?指标是求极小|可以跟梯度下降法{最优化理论l合?

C06. Logistic 回归与最大熵模型

  • 模型
    • Logistic 回归模型Q也UCؓҎ几率回归模型Q输入是的线性函敎ͼ输出的是Ҏ几率模型
      • Z Logistic 分布建立的,表示条g概率的分cL?
        • Logistic 分布?Sigmoid 函数Q?strong>定义 6.1
      • Ҏ几率 (log odds) ?logit 函数
        • 一个事件的几率 (odds) 是指该事件发生的概率与该事g不发生的概率的比倹{?
      • 二项 Logistic 回归模型是二cdcL型,定义 6.2
      • 多项 Logistic 回归模型是多cdcL?
      • 模型参数估计
        • 极大似然估计?
    • 最大熵模型
      • Z最大熵原理推导的,表示条g概率分布的分cL型,可以用于二类或多cdcR?
        • 最大熵原理认ؓQ在所有可能的概率模型Q分布)的集合中Q熵最大的模型是最好的模型?
        • 准则Q最大熵原理是概率模型学习或估计的一个准则?
      • 最大熵模型的学?
        • 最大熵模型的学习过E就是求解最大熵模型的过E?
        • 最大熵模型的学习可以Ş式化为有U束的最优化问题Q对偉题)
          • 拉格朗日乘子参考附?C
      • ?6.1, 6.2 方便理解最大熵模型的算法原理?
    • 学习采用极大似然估计或者正则化极大似然估计
      • 形式化ؓ无约束最优化问题
    • 求解无约束最优化问题的算?
      • q代度?
      • 梯度下降?
      • 拟牛法
  • 学习ȝ
    • Logistic 模型与最大熵模型都属于对数线性模型。[周志华,2018] C03
    • 极大似然估计Q书里写的比较简单,没有原理性的说明Q推荐([周志华,2018] P149, [Duda, 2003] P67Q?
    • 模型学习的最优化法Q书里写的不太好理解。各U机器学习和模式识别的书里面都有介绍Q推荐([周志华,2018] P403, [Hagan, 2006] C09Q?

C08. 提升ҎQ集成学习)

提升Ҏ是一U统计学习方法,也是一U提升模型学习能力和泛化能力的方法,q是一U组合学习(集成学习Q的ҎQ是l计学习中最有效的方法之一?/p>

  • Z么要各U学习方法组合v来?
    • 强可学习Ҏ与弱可学习方法的{h性;
    • 各U弱可学习方法组合v来就可以提升 (boost) 为强可学习方?
  • 如何各U学习方法组合v来?
    • AdaBoost 法
      • 是一U通用的组合算法,可以各U分cȝ法进行组合?
    • 提升?
      • 以分cL或回归树为基本分cd的提升方法(l合法Q?
      • 提升树是l计学习中性能最好的Ҏ之一
    • Bagging 法Q本章无介绍Q了解请参考[周志华,2018] C8.3Q?
      • 随机林
  • AdaBoost 法
    • 模型Q加法模?
      • 如何改变训练数据的权值和概率分布Q采?“分而治之?的方法。提高那些被前一轮弱分类器错误分cȝh的权|从而保证后一轮的弱分cd在学习过E中能够更多x它们?
      • 如何弱分类器组合成一个强分类器:采用 “加权多数表决?的方法。加大分c误差率的弱分cd的权|从而保证它们在表决中v较大的作用?
    • {略Q指数损失函数极化Q即l验风险极小化?
    • 法Q前向分步算法来优化分步优化指数损失函数的极化问题?
    • 法的训l误差分?
      • AdaBoost 能够在学习过E中不断减少训练误差Q即减少训练数据集上的分c误差率?
        • AdaBoost 的训l误差是以指数速率下降的?em>定理与证明徏议蟩q?/em>
    • 法的优化过E分?
      • 因ؓ学习的是加法模型Q所以能够从前向后,每一步只学习一个基函数及基pLQ逐步D优化目标函数Q简化优化的复杂度?
      • 前向分步法?AdaBoost 的关p:定理与证明徏议蟩q?/em>
  • 提升树模?
    • 模型Q加法模型,以决{树为基函数
    • {略Q损失函?
      • 分类问题Q指数损失函?
      • 回归问题Q^方误差函?
      • 一般决{问题:一般损失函?
    • 法Q前向分步算?
      • 梯度提升法QGBDTQ:解决L数据的优化问题,原理参考、[Friedman, 2001]
  • 学习ȝ
    • 学习基础
      • 熟悉重要的分cȝ法:经|络和支持向量机
      • 熟悉常用的分cȝ法:k q邻法和决策?
    • 学习目标
      • l合各种分类法Q从而生质量更好的学习能力和泛化能力模?
    • 胡思ؕ?
      • 全连接的深度经|络是理论上最完美的组合模型,问题在于l度N带来的计复杂度问题?
      • Z解决计算复杂度问题,需要了解其他分cL型,因ؓ其他分类模型是具备了先验知识的经|络模型Q将那些分类模型转化为神l网l模型后可以大q减连接的数量?
      • 概率q似正确 (probably approximately correct, PAC) 来自计算学习理论Q可参考[周志华,2018] C12, [Mitchell, 2003] C07
      • 集成学习 (ensemble learning) 也被UCؓ多分cdpȝ、基于委员会的学习等Q可参考[周志华,2018] C08

C10. ?Markov 模型QHMMQ的法及推q?/strong>

  • 学习基础
    • 随机q程Q用于理?Markov 铄数学含义
    • EM 法Q用于计?HMM 的学习问?
  • Markov 铄定义
    • 随机q程
      • 研究对象是随旉演变的随机现象。[盛骤Q?015] C12
      • ?T 是一无限实数集,对依赖于参数 tQt 属于 TQ的一族(无限多个Q随机变量称为随E?
      • 我的理解
        • 随机q程在Q一个时?t, 被观到的状态是随机的,但是q个随机状态是׃个确定的函数控制的?
        • 例如Q有 3 块金属放在箱子里面,M个时?t 取出的金属是随机的,但是每块金属衰退的速度是由q块金属自n的函数控制的?
        • 随机变量ȝ的是数值的随机性(某个数出现的概率Q,随机q程ȝ的是函数的随机性(某个函数出现的概率)
    • Markov q程
      • Markov 性或无后效性:q程Q或pȝQ在时刻 t_0 所处的状态ؓ已知的条件下Q过E在时刻 t>t_0 所处状态的条g分布与过E在时刻 t_0 之前所处的状态无兟뀂即在已l知道过E“现在”的条g下,其“将来”不依赖于“过厠Z。[盛骤Q?015] C13
      • Markov q程Q具?Markov 性的随机q程Q称?Markov q程?
    • Markov ?
      • 旉和状态都是离散的 Markov q程UCؓ Markov 链,U马氏链?
      • 深入理解可参?[Rabiner, 1989]
    • HMM
      • 关于时序的概率模?
      • 用于描述一个被观测到的随机序列Q这个随机序列是׃可观的状态随机序列生成的Q这个状态随机序列是由隐藏的 Markov N机生成的?
        • 状态序?QQ隐藏的 Markov N机生成的状态序列;
        • 观测序列 OQ每个状态生成一个观,一个状态序列就会生成一个观序列?
        • 序列的每一个位|都可以看作一个时刅R?
  • HMM 的基本假?
    • 齐次 Markov 假设Q即假设隐藏?Markov 铑֜L时刻 t 的状态只依赖于前一个时ȝ状态,而与其他时刻的状态及观测无关Q也与时?t 无关Q?
    • 观测独立性假设,卛_设Q意时?t 的观只依赖于该时刻?Markov 铄状态,与其他观与状态无兟?
  • HMM 的基本元?
    • NQ模型的状态数Q?
    • MQ每个状态生成的可观的标志敎ͼ
    • AQ{UL率矩阵,a_{ij} 表示从状?i 转移到状?j 的概率;
    • BQ观概率矩阵,b_{j} (k) 表示状?j 产生标志 k 的概率;
    • πQ初始状态分布,π_i 表示一开始系l在状?i 的概率?
    • HMM 参数的数学表C:λ=(A, B, π)
  • HMM 的三个基本问?
    • 概率计算问题
      • l定观测序列 O 和模型参?λQ计基于这个模型下观测序列出现的概?P(O|λ) Q?
    • 预测问题
      • l定观测序列 O 和模型参?λQ寻找能够解释这个观序列的状态序列,q个状态序列的可能性最大;
      • 除非是退化的模型Q否则不会有“正”的状态序列,因ؓ每个状态序列都有可以生成观序列;
      • 只可能是依据某个优化准则Q扑ֈ的状态序列尽可能的D真实的状态序列?
    • 学习问题
      • l定观测序列 OQ寻找能够解释这个观序列的模型参数 λQ?P(O|λ) 最大?
      • 评测哪个模型能最好地解释观测序列?
  • HMM 的三个基本问题的解决Ҏ
    • 概率计算问题Q前向算法;
      • 先了解直接计法Q理?HMM 需要计的概率的方法和目的Q同时明白直接计法存在的问题;
      • 再了解前向算法,如果利用栅格Ҏ叠加前面计算的成果,从而降低直接计法的庞大计量?
    • 预测问题QViterbi 法Q?
    • 学习问题Q前?+ 后向法 +EM 法?
      • 利用前向 + 后向法计算转移概率矩阵Q?
      • 再基?MLE 理论构?P(O|λ) 函数Q?
      • 因ؓ函数中有三个参数不可知,无法直接计算得到Q因为采?EM 法q代求解?
  • HMM 的基本类?
    • 基本?HMM cd
      • 4 状态遍?HMMQ其他类型都是遍?HMM 的特例?
      • 4 状态从左到?HMMQ?
      • 6 状态从左到叛_ƈ行\?HMM?
    • 观测序列的密度是q箋函数?HMMQ增加了混合高斯作ؓU束Q?
    • 自回归的 HMMQ很适合语音处理Q?
    • 无输出的 HMMQ即某些状态{UL无观输出,主要用于语音识别Q?
    • 一l状态到另一l状态{换:l内状态无转移Q?
    • 优化准则Q利用概率理论(MLQ或信息理论QMMIQMDIQ刻画;
    • 比较 HMM 模型Q用于模型的度和选择Q常用的度Q交叉熵或散度或判别信息Q?
  • HMM 法的具体实现方?
    • 观测数据的尺度化Q方便计机处理Q防止溢出;
    • HMM 模型的训l:通过多个观测序列q行训练Q估计模型的参数Q?
    • HMM 模型参数的初始D定,没有形式化方法,只能凭借经验;
    • 观测数据数量q少Q或者观数据不完整
      • 扩大用于训练的观集的大(现实不可操作Q;
      • 减少 HMM 模型的参C敎ͼ卛_?HMM 模型的规模;
      • 利用插值的Ҏ补齐或者增加数据?
    • HMM 模型的选择
      • 定 HMM 模型的状态(模型状态数Q模型\径数Q?
      • 定 HMM 观测的标志(q箋q是LQ单个还是؜合)
      • 无Ş式化ҎQ依赖于具体的应用?
  • 学习ȝ
    • 随机q程?HMM 法的基本概늚理解Q特别是语音识别和语a处理方向的研I极为重要;
    • HMM 法的计过E的了解Q虽然可以调用成熟的模块Q但是了解这个计过E对?HMM 计算的调优可能会有帮助;
    • HMM 法的学习极力推?[Rabiner, 1989]Q本章的框架是Zq篇文章写的?

C11. 条g随机场(CRFQ的法及推q?/h1>
  • 条g随机场(Conditional Random Field, CRFQ的基本概念
    • 概率模型
      • 提供了一U描q框Ӟ学习Q务归l于计算变量的概率分布?
      • 推断Q利用已知变量推未知变量的分布Q核心是如何Z可观变量推出未知变量的条件分布?
    • 生成模型与判别模?
      • 生成 (generative) 模型
        • 考虑联合分布Q是所有变量的全概率模型;
        • q态序列决定观序列,因此可以模拟Q“生成”)所有变量的倹{?
        • h严格的独立性假设;
        • 特征是事先给定的Qƈ且特征之间的关系直接体现在公式中?
        • 优点
          • 处理单类问题比较灉|Q?
          • 模型变量之间的关pL较清楚;
          • 模型可以通过增量学习获得Q?
          • 可以应用于数据不完整的情c?
        • ~点Q模型的推导和学习比较复杂?
        • 应用
          • n 元语法模?
          • HMM
          • Markov 随机?
          • Naive Bayes 分类?
          • 概率上下文无x?
      • 判别 (discriminative) 模型
        • 考虑条g分布Q认为由观测序列军_状态序列,直接对后验概率徏模;
        • 从状态序列中提取特征Q学习模型参敎ͼ使得条g概率W合一定Ş式的最优?
        • 特征可以Ll定Q一般利用函数进行表C?
        • 优点Q模型简单,Ҏ建立与学习;
        • ~点Q描q能力有限,变量之间的关pM清晰Q只能应用于有监督学习?
        • 应用
          • 最大熵模型
          • 条g随机?
          • 最大熵 Markov 模型 (maximum-entropy Markov model, MEMM)
          • 感知?
    • 概率图模型:是一cȝ图来表达变量相关关系的概率模型,
      • 有向图模型(Bayes |)Q用有向无环图表示变量间的依赖关系Q如Q推导关p?
        • 静?Bayes |络
        • 动?Bayes |络Q适合处理一般图问题
          • ?Markov 模型Q结构最单的动?Bayes |,适合处理U性序列问题,可用于时序数据徏模,主要应用领域韌别、自然语a处理{?
      • 无向图模型(Markov |)Q用无向图表示变量间的依赖关系Q如Q@环关p?
        • Markov 随机场:典型?Makrov |?
        • Boltzman ?
        • 通用条g随机场:适合处理一般图问题
          • U性链式条仉机场Q适合处理U性序列问?
    • 随机场:
  • 概率图模?
    • 在概率模型的基础上,使用了基于图的方法来表示概率分布Q或者概率密度、密度函敎ͼQ是一U通用化的不确定性知识表C和处理的方法?
    • 图是表示工具
      • l点表示一个或者一l随机变?
      • l点之间的边表示变量间的概率依赖关系Q即“变量关pd”?
  • Bayes |络Q信늽Q信度网Q置信网Q?
    • 目的Q通过概率推理处理不确定性和不完整性问?
    • 构?Bayes |络的主要问?
      • 表示Q在某一随机变量的集合上l出其联合概率分布?
      • 推断Q因为模型完整描qC变量及其关系Q可以推断变量的各种问题?
        • _推理ҎQ变量消除法和团树法
        • q似推理ҎQ重要性抽h、MCMC 模拟法、@环信念传播法和泛化信念传播法{?
      • 学习Q决定变量之间相互关联的量化关系Q即储存强度估计?
        • 参数学习常用ҎQMLE、MAP、EM ?Bayes 估计法?
        • l构学习Q?
  • Markov 随机?(Markov Random Field, MRF)
    • 定义
      • 是一l有 Markov 性质的随机变量的联合概率分布模型Q?
      • 联合概率分布满成对、局部和全局 Markov 性?
      • ׃个无向图 G 和定?G 上的势函数组成?
    • 基本概念
      • ?(clique)Q是图中l点的一个子集,团内L两个l点都有边相q。也UCؓ完全子图 (complete subgraph)?
      • 极大?(maximal clique)Q若在一个团 C 中加入Q何一个结炚w不再形成团,p那个?C 是最大团。极大团是不能被其他团所包含的团?
      • 因子分解 (factorization)Q将概率无向图模型的联合概率分布表示为其最大团上的随机变量的函数的乘积形式的操作?
      • 分离?(separating set)Q若从结炚w A 中的l点到结炚w B 中的l点都必ȝq结炚w C 中的l点Q则U结炚w A ?B 被结炚w C 所分离?
      • 全局 Markov 性:l定两个变量子集的分集Q则q两个变量子集条件独?
        • 局?Markov 性:l定某变量的L变量Q则该变量独立于其他变量
        • 成对 Markov 性:l定所有其他变量,两个非邻接变量条件独??
      • 势函?
        • 用于模型进行参数化的参数化因子Q称为团势能或者团势能函数Q简U势函数?
        • 定义在变量子集上的非负实函数Q主要用于定义概率分布函敎ͼ亦称“因子”?
        • 多个变量之间的联合概率可以基于团分解为多个因子的乘积?
        • 指数函数l常被用于定义势函数?
  • 条g随机?(Conditional Random Field, CRF)
    • 用来处理标注和划分序列结构数据的概率化结构模型?
    • 是给定一l输入随机变量条件下另一l输出随机变量的条g概率分布模型
      • 假设输出随机变量构成 Makrov 随机场?
    • U性链条g随机?
      • 输入序列对输出序列预的判别模型
      • 形式为对数线性模?
    • 构?CRF 的主要问?
      • 特征的选取
      • 参数训练
      • 解码
    • 优点Q相比于 HMM 没有独立性要求,相比于条?Markov 模型没有标识偏置问题?
  • 学习ȝ
    • 本书的描q概忉|内容过,不利于理解,阅读 [周志华,2018] C14
    • 以概率图模型为基来理解条仉机场会更加容易,也能够保证知识相互之间的联系Q还可以加深?HMM 的理解?
    • CRF 的主要应用是自然语言处理Q因此结合自然语a处理来理解概念也会更加深刅R?[宗成庆,2018] C06
    • 虽然国内几本书都写的不错Q但?CRF 都不是他们书中的重点Q若x入学?CRF q是请参?[Sutton, 2012]

C12. l计学习Ҏȝ

10 U统计学习方法特点的概括ȝ

Ҏ 适用问题 模型特点 模型cd 学习{略 学习的损失函?/strong> 学习法
感知?/td> 二类分类 分离^?/td> 判别模型 极小化误分点到超q面距离 误分点到^面距?/td> 随机梯度下降
K q邻?/td> 多类分类Q回?/td> 特征I间Q样本点 判别模型 ____ ____ ____
朴素贝叶?/td> 多类分类 特征与类别的联合概率分布区,条g独立假设 生成模型 极大似然估计Q极大后验概率估?/td> Ҏ似然损失 概率计算公式QEM 法
决策?/td> 多类分类Q回?/td> 分类树,回归?/td> 判别模型 正则化的极大似然估计 Ҏ似然损失 特征选择Q生成,剪枝
逻辑斯蒂回归与最大熵模型 多类分类 特征条g下类别的条g概率分布Q对数线性模?/td> 判别模型 极大似然估计Q正则化的极大似然估?/td> 逻辑斯蒂损失 改进的P代尺度算法,梯度下降Q拟牛顿?/td>
支持向量?/td> 二类分类 分离^面,核技?/td> 判别模型 极小化正则化的合|失,软间隔最大化 合页损失 序列最最优化法 (SMO)
提升Ҏ 二类分类 弱分cd的线形组?/td> 判别模型 极小化加法模型的指数损失 指数损失 前向分布加法法
EM 法 概率模型参数估计 含隐变量概率模型 ____ 极大似然估计Q极大后验概率估?/td> Ҏ似然损失 q代法
隐马可夫模?/td> 标注 观测序列与状态序列的联合概率分布模型 生成模型 极大似然估计Q极大后验概率估?/td> Ҏ似然损失 概率计算公式QEM 法
条g随机?/td> 标注 状态序列条件下观测序列的条件概率分布,ҎU性模?/td> 判别模型 极大似然估计Q正则化极大似然估计 Ҏ似然损失 改进的P代尺度算法,梯度下降Q拟牛顿?/td>

W号说明

  • PxxQ代表第 xx ;
  • CxxQ代表第 xx 章;
  • [M]Q代表图书;
  • [J]Q代表杂志;


zYx.Tom 2019-09-17 09:39 发表评论
]]>
《Python 数据U学实践指南》读书笔?/title><link>http://m.tkk7.com/zhuyuanxiang/archive/2019/03/19/433681.html</link><dc:creator>zYx.Tom</dc:creator><author>zYx.Tom</author><pubDate>Tue, 19 Mar 2019 04:51:00 GMT</pubDate><guid>http://m.tkk7.com/zhuyuanxiang/archive/2019/03/19/433681.html</guid><wfw:comment>http://m.tkk7.com/zhuyuanxiang/comments/433681.html</wfw:comment><comments>http://m.tkk7.com/zhuyuanxiang/archive/2019/03/19/433681.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/zhuyuanxiang/comments/commentRss/433681.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/zhuyuanxiang/services/trackbacks/433681.html</trackback:ping><description><![CDATA[<section class="page__content" itemprop="text"><aside class="sidebar__right sticky"><nav class="toc"><header> <h4 class="nav__title"><!-- <i class="fas fa-book-reader"></i> -->文章提纲</h4></header> <ul class="toc__menu"> <li><a href="#全书总评">全书总评</a> <li><a href="#c01python-介绍">C01.Python 介绍</a> <ul> <li><a href="#python-版本">Python 版本</a> <li><a href="#python-解释?>Python 解释?/a> <li><a href="#python-之禅">Python 之禅</a> </li></ul> <li><a href="#c02python-基础知识">C02.Python 基础知识</a> <ul> <li><a href="#基础知识">基础知识</a> <li><a href="#程控制">程控制Q?/a> <li><a href="#函数及异?>函数及异?/a> <ul> <li><a href="#函数">函数Q?/a> <li><a href="#异常">异常</a> </li></ul> <li><a href="#字符?>字符?/a> <ul> <li><a href="#获取键盘输入">获取键盘输入Q?/a> <li><a href="#字符串处?>字符串处?/a> <li><a href="#字符串操?>字符串操?/a> <li><a href="#正则表达?>正则表达?/a> </li></ul></li></ul> <li><a href="#c05-容器container与集合collections">C05. 容器QContainerQ与集合QCollectionsQ?/a> <ul> <li><a href="#元组tuple">元组QTupleQ?/a> <li><a href="#列表list">列表QListQ?/a> <li><a href="#字典dictionary">字典QDictionaryQ?/a> <li><a href="#集合collections">集合QCollectionsQ?/a> </li></ul> <li><a href="#c06python-标准?>C06.Python 标准?/a> <ul> <li><a href="#数学模块math">数学模块Qmath</a> <li><a href="#旉模块timedatetimecalendar">旉模块QtimeQdatetimeQcalendar</a> <li><a href="#随机数模块random">随机数模块:random</a> <li><a href="#取样">取样Q?/a> <li><a href="#文g处理glob-?fileinput">文g处理Qglob ?fileinput</a> <li><a href="#压羃bz2-?gzip">压羃Qbz2 ?gzip</a> <li><a href="#漂亮打印pprint-模块">漂亮打印Qpprint 模块</a> <li><a href="#跟踪异常日志traceback-模块">跟踪异常日志Qtraceback 模块</a> <li><a href="#|络数据传输json">|络数据传输QJSON</a> </li></ul> <li><a href="#c07-?python-d外部数据">C07. ?Python d外部数据</a> <ul> <li><a href="#csvcsv-模块">CSVQcsv 模块</a> <li><a href="#excelpandas-模块参?c10">ExcelQpandas 模块Q参?C10Q?/a> <li><a href="#mysqlmysqldb-模块torndb-模块">MySQLQMySQLdb 模块Qtorndb 模块</a> <li><a href="#postgresqlpsycopg2-模块">PostgreSQLQpsycopg2 模块</a> <li><a href="#mongodbpymongo-模块">MongoDBQpymongo 模块</a> <li><a href="#elasticsearchelasticsearch-模块">ElasticSearchQelasticsearch 模块</a> </li></ul> <li><a href="#c08-?python-解决l计问题">C08. ?Python 解决l计问题</a> <ul> <li><a href="#描述性统?>描述性统?/a> <li><a href="#数据可视?>数据可视?/a> </li></ul> <li><a href="#c09-爬虫入门">C09. 爬虫入门</a> <ul> <li><a href="#request-模块">request 模块</a> <li><a href="#xpath-模块">Xpath 模块</a> </li></ul> <li><a href="#c10-数据U学的第三方?>C10. 数据U学的第三方?/a> <ul> <li><a href="#numpy-模块">Numpy 模块</a> </li></ul> <li><a href="#从这里开始先弃了q本书适合了解了以后再来根据作者的实践角度查遗补缺">从这里开始,先弃了,q本书适合了解了以后,再来Ҏ作者的实践角度查遗补缺?/a> <ul> <li><a href="#pandas-模块">Pandas 模块</a> <li><a href="#scikit-learn-模块">Scikit-Learn 模块</a> <li><a href="#c11-图数据分?>C11. 图数据分?/a> <li><a href="#图论基础">图论基础</a> <li><a href="#networkx-模块">NetworkX 模块</a> <li><a href="#利用-networkx-q行囑ֈ?>利用 NetworkX q行囑ֈ?/a> </li></ul> <li><a href="#c12-大数据工?>C12. 大数据工?/a> <ul> <li><a href="#hadoop">Hadoop</a> <li><a href="#spark">Spark</a> </li></ul></li></ul></nav></aside> <h1 id="全书总评">全书总评</h1> <ul> <li>书本印刷质量Q? 星。印h楚,排版合适,错误很少? <li>著作~写质量Q? 星。Python 入门和与数据处理相关的各U模块的入门Q以及数据处理的入门。作者是原著Q写的确实是自己的东西,不是东抄西抄。只是实践部分的内容实在太浅薄了些? <li>代码质量Q?星。Python入门q本书的IT功底不够Q中间可能会到一些坑Q最好有点Python基础以后Q用q本书查遗补~?a >下蝲地址</a> <li>阅读W记Q记录需要记住的重点Q方便快速回忆?</li></ul> <h1 id="c01python-介绍">C01.Python 介绍</h1> <h2 id="python-版本">Python 版本</h2> <ul> <li>Python 2.xQ?001 q发布,有许多资料和库基于这个版本编写; <li>Python 3.xQ?009 q发布,与旧版本不兼容; </li></ul> <h2 id="python-解释?>Python 解释?/h2> <ul> <li>Python是开源的Q因此它的解释器有许多种实现Q主的?a >官方的解释器</a>Q?</li></ul> <h2 id="python-之禅">Python 之禅</h2> <ul> <li>import this </li></ul> <h1 id="c02python-基础知识">C02.Python 基础知识</h1> <h2 id="基础知识">基础知识</h2> <ul> <li>基础数据cdQ在 Python 中,所有的元素都是“对象”? <ul> <li>NoneQ表CZ么都没有的类型; <li>intQ表C整数的cdQ? <li>floatQ表CQҎ的类型; <li>boolQ表C布数值的cdQ? <li>strQ表C字W串的类型; </li></ul> <li>变量与赋|Python 的书写规范(PEP8Q? <ul> <li>序列解包 </li></ul> <li>操作W与表达式: <ul> <li>术操作W: <li>位操作符Q? <li>比较操作W: <li>逻辑操作W:andQorQnot </li></ul> <li>文本~辑器: <ul> <li>文g~码QUTF-8 </li></ul></li></ul> <h2 id="程控制">程控制Q?/h2> <ul> <li>条g判断Qif…elif…else…)Q? <li>循环Q? <ul> <li>whileQ? <li>for…in…: </li></ul> <li>~进Q空白与注释 <ul> <li>~进Q分割代码块Q? <li>I白Q没有Q何意义,只ؓ观Q? <li>注释Q? <ul> <li>单行注释Q?? <li>多行注释Q?”…””?</li></ul></li></ul></li></ul> <h2 id="函数及异?>函数及异?/h2> <h3 id="函数">函数Q?/h3> <ul> <li>函数定义Qdef func_name() <li>参数定义Q? <ul> <li>实参Q? <li>形参Q? <li>位置参数Q参数绑定)Q根据定义和调用函数时参数的位置q行参数的赋| <li>关键字参敎ͼ非关键字参数不能定义在关键字参数后面? <li>可变数量的参敎ͼdef func(*args, **kwargs) <ul> <li>*argsQ位|Ş参,表示L数量的位|参数都会合q成一个元l,l定?args 上; <li>**kwargsQ关键字形参Q表CZQ意数量的关键字参数都会合q成一个元l,l定?kwargs 上; </li></ul></li></ul> <li>递归Q? <li>闭包QclosureQ:又称词法闭包QLexical ClosureQ或函数闭包QFunction ClosureQ,是引用了自由变量的函数。这个被引用的自由变量将和这个函C同存在,即已经d了创建它的环境也不例外?</li></ul> <h3 id="异常">异常</h3> <ul> <li>异常Q(try…except…finally…) </li></ul> <h2 id="字符?>字符?/h2> <ul> <li>q算W: <ul> <li>?”:字符串拼接; <li>?”:字符串复制多份,然后拼接Q? <li>切片 [start,stop,step]Q? <li>len()Q字W串长度Q?</li></ul></li></ul> <h3 id="获取键盘输入">获取键盘输入Q?/h3> <ul> <li>input(str)Q?</li></ul> <h3 id="字符串处?>字符串处?/h3> <ul> <li>字符? <ul> <li>字符QCharacterQ:是各U文字和W号的ȝQ? <li>字符集(Character SetQ:是多个字W的集合Q字W集的各cd多,每个字符集包含的字符个数也不同? <li>字符~码QCharacter EncodingQ:也称字集码,是把字符集中的字W编码按指定集合中的某一个对象,以便在计机中存储和通过通信|络传递文本?</li></ul> <li>ASCII 字符集和~码 <li>Unicode 字符集和 UTF-8 ~码 </li></ul> <h3 id="字符串操?>字符串操?/h3> <ul> <li>基本操作Q? <ul> <li>strip()Q移除字W串两侧的所有空白符Q? <li>capitalize()Q字符串的首字母大写; <li>title()Q字符串中每个单词的首字母大写Q? <li>lower()Q字符串的所有字母小写; <li>upper()Q字符串的所有字母大写; <li>isalnum()Q字W串中包含字母或者数字时?TrueQ? <li>isdigit()Q字W串中只包含数字时ؓ TrueQ?</li></ul> <li>分割Q? <ul> <li>split(delimiter)Q将字符串按指定分隔W分Ԍ <li>rsplit(delimiter)Q将字符串从双开始按指定分隔W分Ԍ </li></ul> <li>格式化: <ul> <li>%Qprint(?s?%name) <li>format()Qprint(‘{one} and {two}?format(one=??two=??) </li></ul></li></ul> <h3 id="正则表达?>正则表达?/h3> <ul> <li>转义W:P55 <li>re 模块Q? <ul> <li>re.compile()Q匹配模式; <ul> <li>match()Q匹配字W串Q?</li></ul></li></ul></li></ul> <h1 id="c05-容器container与集合collections">C05. 容器QContainerQ与集合QCollectionsQ?/h1> <h2 id="元组tuple">元组QTupleQ?/h2> <ul> <li>元组Q与字符串一P是有序的序列Q不可以改变内容 <li>基本操作Q连接、切片都与字W串保持一_ <li>序列解包Q也U多重赋| <li>支持q代器协议,支持 for 循环 </li></ul> <h2 id="列表list">列表QListQ?/h2> <ul> <li>列表Q也是序列类型的对象Q但是可以改变列表中的内容; <li>基本操作Q连接、切片都与字W串保持一_ <li>更改操作Q? <ul> <li>pop()Q删除列表中的数据,q将删除的数据返回; <li>insert()Q插入数据; <li>append()Q追加数据; <li>extend()Q拼接列表; </li></ul> <li>引用传递:所有的赋值都只是引用的传递,q没有创建新的数据; <ul> <li>list[:]Q浅拯Q只拯W一层引用的数据Q? <li>deepcopy()Q深拯Q拷贝所有引用的数据Q?</li></ul> <li>列表解析式:构造列表的方式Q将一个函C用到整个列表中每个元素的方式Q[x for x in range(1,3)] </li></ul> <h2 id="字典dictionary">字典QDictionaryQ?/h2> <ul> <li>字典在其他语a中被UCؓ散列表,?key:value 寚w过{}l成的无序结构? <li>常用的函敎ͼ <ul> <li>get(key)Q通过 key 取得对应?valueQ还可以通过铑ּ调用取| <li>dict(list)Q构建新的字典; <li>dict.keys()Q获取字典的 keys q代Q? <li>dict.values()Q获取字典的 values q代Q? <li>dict.items()Q获取字典的 key:value 对的q代Q? <li>dict.pop(key)Q取出指定关键字的| <li>dict.update(key)Q更新字怸对应?key 中的 valueQ?</li></ul></li></ul> <h2 id="集合collections">集合QCollectionsQ?/h2> <ul> <li>namedtuple()Q具名元l? <li>Counter()Q篏加器Q可以用来做l典?word countQ? <li>defaultdict()Qؓ字典讑֮一个默认| <li>OrderedDict()Q字典有序Q?</li></ul> <h1 id="c06python-标准?>C06.Python 标准?/h1> <h2 id="数学模块math">数学模块Qmath</h2> <ul> <li>常见帔RQ默认精度ؓ 15 位,最多可以取?48 ? <ul> <li>math.pi <li>math.e </li></ul> <li>无穷大与无效数字Q? <ul> <li>math.infQ表C“无I大”,?infinite 的羃写。math.inf*math.inf==math.inf <li>math.nanQ表C“无效数字”,?Not a number 的羃写。math.inf/math.inf==math.nan <li>int 的范_?3.5 ?int 长度理论上是无限? <li>float 的范_1e-309~1e+309 </li></ul> <li>点数{换ؓ整数Q? <ul> <li>math.trunc(f)Q截掉Q点型数点后面的数字Q? <li>math.floor(f)Q取最接近点型数字的整数Q? <li>math.ceil(f)Q取比当前Q点型数字大的整数Q?</li></ul> <li>l对值和W号Q? <ul> <li>math.fabs(f)QQҎ的绝对| <li>math.copysign(x,y)Q符号函敎ͼ?y 的符号传递给 xQ?</li></ul> <li>常用计算Q? <ul> <li>math.fsum(values)Q解?sum(values) 不能_计算的问题; <li>math.factorial(x)Q阶乘计函数?</li></ul> <li>指数和对敎ͼ <ul> <li>math.pow(x,y)Qx ?y ơ幂Q? <li>math.log(x)Qx ?e 为底的对敎ͼ <li>math.log10(x)Qx ?10 为底的对敎ͼ </li></ul></li></ul> <h2 id="旉模块timedatetimecalendar">旉模块QtimeQdatetimeQcalendar</h2> <ul> <li>time 模块Q基的时间处理模块; <ul> <li>time.time()Q表CZؓ数字旉戻I即从格林威治旉Q?970-1-1Q?Q?Q?Q北京时_1970-1-1Q?Q?Q?Q以来所l历q的U数Q? <li>time.ctime(x)Q没?x 则返回当前时间的字符串版本,?x 则返回从旉戛_始经q了 x U后的时间的字符丌Ӏ? <li>struct_timeQ具名元l,可以分别获得q?(tm_year)、月 (tm_mon)、当月第几日 (tm_mday)、时 (tm_hour)、分 (tm_min)、秒 (tm_sec)Q星期几 (tm_wayQ星期一?0)Q当q第几天 (tm_yday)Q是否夏令时 (tm_isdstQ没有ؓ 0)Q? <ul> <li>time.gmtime()Q格林威M?struct_timeQ? <li>time.localtime()Q当前电脑所在时区的 struct_timeQ? <li>time.mktime(struct_time)Q还原成数字旉戳的方式Q? <li>time.strptime(string,format)Q将字符串格式的旉按照格式转换?struct_time 格式Q? <li>time.strftime(format,struct_time)Q将 struct_time 格式的时间元l{换成字符串格式; </li></ul></li></ul> <li>datetime 模块Q针对年月日和时分秒分别q行处理Q? <li>calendar 模块Q处理万q历Q?</li></ul> <h2 id="随机数模块random">随机数模块:random</h2> <ul> <li>随机数生成器Q? <ul> <li>random.random()Q生成均匀分布的Q炚w机数Q在半开半闭区间 [0.0, 1.0)Q? <li>random.seed()Q设|随机数U子Q? <li>random.randint(a,b)Q返回整型随机数Q在闭区?[a,b]Q? <li>random.randrange()Q返回整型随机数Q在半开半闭区间 [a,b)Q?</li></ul></li></ul> <h2 id="取样">取样Q?/h2> <ul> <li>random.shuffle(list)Q按随机性质列表重新排列顺序; <li>random.choice(list)Q按随机性质从列表中抽取数据Q? <li>random.sample(list,k)Q按随机性质从列表中抽取指定长度的数据; </li></ul> <h2 id="文g处理glob-?fileinput">文g处理Qglob ?fileinput</h2> <ul> <li>open(filename,mode)Q基?mode 模式打开 filename 文gQ还支持上下文管理器 with 模式Q? <li>glob 模块Q目录处理; <li>fileinput 模块Q批量文件读入;是一个帮助类Q?</li></ul> <h2 id="压羃bz2-?gzip">压羃Qbz2 ?gzip</h2> <ul> <li>不徏议用的压羃格式Q? <ul> <li>rarQ专门服务于 Windows 下,Python 需要第三方库才能打开Q? <li>tarQ只用于打包文gQ不Ҏ件进行压~; <li>zipQ既可以压羃文gQ还可以打包文gQ因带打包功能,不适合用于Ҏ件单独压~; </li></ul> <li>使用的压~格? <ul> <li>bz2 模块Q对单个文g可写可读Q非常方便; <li>gzip 模块Q对单个文g可写可读Q非常方便; </li></ul></li></ul> <h2 id="漂亮打印pprint-模块">漂亮打印Qpprint 模块</h2> <h2 id="跟踪异常日志traceback-模块">跟踪异常日志Qtraceback 模块</h2> <h2 id="|络数据传输json">|络数据传输QJSON</h2> <ul> <li>json.loads()Q将 JSON 转换成字典; <li>json.dumps()Q将字典转换?JSONQ?</li></ul> <h1 id="c07-?python-d外部数据">C07. ?Python d外部数据</h1> <h2 id="csvcsv-模块">CSVQcsv 模块</h2> <ul> <li>csv.reader()Q读取文Ӟ <li>csv.writer()Q写入文Ӟ <li>csv.register_dialect()Qdelimiter= 注册分割W; <li>csv.DictReader()Q按照字典结构读取数据;* </li></ul> <h2 id="excelpandas-模块参?c10">ExcelQpandas 模块Q参?C10Q?/h2> <ul> <li>pandas.read_excel()Q读取文Ӟ <li>pandas.to_excel()Q写入文Ӟ <li>pandas.set_option()Q设|属性| <li>pandas.DataFrame()Q表格结构; </li></ul> <h2 id="mysqlmysqldb-模块torndb-模块">MySQLQMySQLdb 模块Qtorndb 模块</h2> <ul> <li>db=torndb.Connection(host,database,user,password)Q徏立数据库链接Q? <li>db.insert(SQL),db.insertmany(SQL)Q向数据库中插入单行数据Q插入多行数据; <li>db.query(SQL)Q从数据库读取数据; </li></ul> <h2 id="postgresqlpsycopg2-模块">PostgreSQLQpsycopg2 模块</h2> <h2 id="mongodbpymongo-模块">MongoDBQpymongo 模块</h2> <h2 id="elasticsearchelasticsearch-模块">ElasticSearchQelasticsearch 模块</h2> <h1 id="c08-?python-解决l计问题">C08. ?Python 解决l计问题</h1> <ul> <li>pandas 模块许多函数发生了改变;?Python 3.7 ?read_excel() q行有问题;l计都没办法试了?</li></ul> <h2 id="描述性统?>描述性统?/h2> <ul> <li>均| <li>中位敎ͼ <li>方差Q? <li>标准差: </li></ul> <h2 id="数据可视?>数据可视?/h2> <ul> <li>基本函数Q? <ul> <li>plot() <li>show() <li>figure() <li>title() <li>xlabel() <li>ylabel() <li>legend() </li></ul> <li>囑ŞQ? <ul> <li>折线图: <li>散点图: <li>q图:bar() <li>饼图Qpie() </li></ul></li></ul> <h1 id="c09-爬虫入门">C09. 爬虫入门</h1> <h2 id="request-模块">request 模块</h2> <ul> <li>HTTP 协议Q? <li>获取 HTML 内容Q?</li></ul> <h2 id="xpath-模块">Xpath 模块</h2> <ul> <li>解析 HTML 内容Q? <li>q个模块已经没有匚w Python3.7 的版本了Q放弃这个学习?</li></ul> <h1 id="c10-数据U学的第三方?>C10. 数据U学的第三方?/h1> <h2 id="numpy-模块">Numpy 模块</h2> <ul> <li>ndarray: <ul> <li>创徏Q? <ul> <li>arange() <li>linspace()Q度量等? <li>random.random()Q随机数 </li></ul> <li>属性: <ul> <li>ndimQ数l的l度Q? <li>shapeQ数l的形状Q? <li>dtype.nameQ数l中数据的类型; <li>itemsizeQ数l类型占用的内存I间大小Q? <li>sizeQ数l中元素个数Q?</li></ul> <li>创徏特定数组Q? <ul> <li>zeros()Q全零矩阵; <li>ones()Q全 1 矩阵Q? <li>empty()Q随机的值组成的矩阵Q?</li></ul></li></ul> <li>基本q算Q数l运是Z元素计算? <ul> <li>矩阵乘法Qdot() <li>q代Q与列表cMQ直接P代按行取敎ͼflat() 可以把数l摊qؓ一l数l? <li>变ŞQresize() 原地修改数组Qreshape() 输出一个变形后的数l,原数l不变; <li>堆叠Qhstack() 行数相同Q水q_叠;vstack() 列数相同Q垂直堆叠; </li></ul> <li>高q算 <ul> <li>transpose()Q{|; <li>linalg.inv()Q取逆; <li>eye()Q单位阵Q? <li>trace()Q取q; <li>linalg.solve()Q解U性方E; <li>linalg.eig()Q解特征方程Q?</li></ul></li></ul> <h1 id="从这里开始先弃了q本书适合了解了以后再来根据作者的实践角度查遗补缺">从这里开始,先弃了,q本书适合了解了以后,再来Ҏ作者的实践角度查遗补缺?/h1> <h2 id="pandas-模块">Pandas 模块</h2> <h2 id="scikit-learn-模块">Scikit-Learn 模块</h2> <h2 id="c11-图数据分?>C11. 图数据分?/h2> <h2 id="图论基础">图论基础</h2> <h2 id="networkx-模块">NetworkX 模块</h2> <h2 id="利用-networkx-q行囑ֈ?>利用 NetworkX q行囑ֈ?/h2> <h1 id="c12-大数据工?>C12. 大数据工?/h1> <h2 id="hadoop">Hadoop</h2> <h2 id="spark">Spark</h2></section><img src ="http://m.tkk7.com/zhuyuanxiang/aggbug/433681.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/zhuyuanxiang/" target="_blank">zYx.Tom</a> 2019-03-19 12:51 <a href="http://m.tkk7.com/zhuyuanxiang/archive/2019/03/19/433681.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>《Python经|络~程》的MW记http://m.tkk7.com/zhuyuanxiang/archive/2019/03/19/433680.htmlzYx.TomzYx.TomTue, 19 Mar 2019 04:03:00 GMThttp://m.tkk7.com/zhuyuanxiang/archive/2019/03/19/433680.htmlhttp://m.tkk7.com/zhuyuanxiang/comments/433680.htmlhttp://m.tkk7.com/zhuyuanxiang/archive/2019/03/19/433680.html#Feedback0http://m.tkk7.com/zhuyuanxiang/comments/commentRss/433680.htmlhttp://m.tkk7.com/zhuyuanxiang/services/trackbacks/433680.html

全书总评

  • 书本印刷质量Q?星。纸张是c黄Ԍ可以保护眼睛Q印h楚,文字排版整洁Q基本没有排版过E中引入的错误,阅读不篏眼睛。但是可能是Word排版Q感觉数学公式的排版不是太好?
  • 著作~写质量Q?星。简单,易懂Q入门很好。可能是Z帮助读者克服对数学的恐惧,所以多用图来说明。但是,没有数学的神l网l本质上q是IZ楼阁Q过于E化数学的作用反而推导部分读v来费劌Ӏ?
  • 著作译质量Q?星。没有明昄问题Q基本用的都是业界常用词汇。其实给3~4星我都在犹UQ因为翻译本w没有错误,作者也不是靠机M事,但是作ؓ一本入门图书,q于长的句子Q英文表q的风格Q人经怼看着看着׃书中“出戏”了Q媄响思A的连贯性?
  • 代码质量Q?星。代码问题不大,q可以去GitHub下蝲?a >作者的GitHubQ热心读者的GitHub?a >CSDN-Blog
  • ȝQ如果还惌一步了解神l网l,L?a href="《神l网l与机器学习?M-W记">《神l网l与机器学习?/a>Q如果想q一步了解PythonQ请ExPython书籍ȝ。如果想q入机器学习的行业,q是找机会精M遍《高{数学》、《线性代数》和《概率统计》吧Q对于后期了解原理绝Ҏ有好处的?

MW记

C01.经|络如何工作Q?/h2>
  1. 计算q啥Q打游戏、听音乐、看视频Q还可以囑փ识别、知识推理等{?
  2. 预测q啥Q不是程序员教的知识Q而通过学习得到的知识,用来处理未来的问?
  3. 分类器能q啥Q对数据q行区分Q例如:Ҏ与香蕉,通过学习Q找出它们的特征Q从而学会分?
  4. 分类器如何训l(学习Q?先学习正的知识Q如果结果不对就调整记忆Q最l全部答Ҏ的知识
  5. 分类器如何解x为复杂的问题Q多个学习单元一起学?
  6. 经元的基本原理Q计机的神l网l只是生物神l元的仿真,或者叫数学解释Q或者叫计算机模拟?
  7. 信号在神l网l中如何动Q?
  8. 怎样化神l网l的表示Q矩c?
  9. 使用矩阵乘法来表CZ层神l网l的例子?
  10. 经元的权重如何学习Q基本原?
  11. ★反向传播误差算法(11~13Q?
    • 多层经|络的误差是如何反向传播的?
    • 误差如何反向传播到更多层中?
      • 单的3层神l网l:输入?隐藏?输出层,误差如何在隐藏层中传播来修改权重?
    • 如何使用矩阵乘法来描q反向传播误差?
  12. 如何更新经|络的权重?数学法Q梯度下降)
  13. 权重更新的具体案例?
  14. 经|络训练的过E:输入Q准备训l数据)、权重(随机初始化)、输出(误差函数优化Q?

C02.使用Pythonq行DIY

  1. Python是啥Q一U非常利于阅ȝ~程语言Q适合非计机专业人员学习和?
  2. IPython是啥Q交互式Python?
  3. Python怎么用?是帮你基本了解PythonQ方便后面看Python代码?
  4. 使用Python制作经|络Q进入正题了Q跟着作者输入一遍代码,可以加深理解?
  5. 数据集MNISTQ进入真正的实用目了?
    1. 输入完整的代码;Q有地方看不懂,是因Z中给出的Python说明q远不够Q但是别在意q些不懂Ql前q,先明白神l网l可以干啥)
    2. 用小的数据集训练和测试神l网l,会发现对于复杂一点的h无法正常识别了Q?
    3. 使用完整的数据集训练和测试神l网l,q次耗时有点长,但是准确率会大大提升Q看样子多花Ҏ间学习是值得的;
    4. 一Ҏq:调整学习率,会发现效果不一样了Qؓ什么呢Q具体原理可以参考《神l网l与机器学习?
    5. 一Ҏq:多次q行Q同L训练数据再学习一ơ还能够提高识别率,但是如果ơ数q多会出现过拟合Q参考《神l网l与机器学习》;
    6. 一Ҏ变:调整隐藏层的节点数目Q可能会影响识别率(P146Q图Q,参考《神l网l与机器学习》;

C03.开拓思维

  1. 自己创造数据:用画图Y件创造一个图片用于识别,囄大小必须是(28*28Q像素格式的Q?
  2. 经|络的秘密:
    1. 秘的黑盒子Q像Zh冗余能力Q少量的损失只会影响_ֺQ不会完全失去能力;
    2. 逆向查询Q把输出变输入,输入变输出,可以发现经|络到底从数据中学到了什么;
  3. 创徏新的训练数据Q真实情况下数字可能是扭曲的、旋转的、不规范的,创造这L数据试试|络的识别率Q想惌别不出的原因Q?

附录B。树莓派

q个对于中国同学g用处不大Q中国h民突然变得钱多多hQ电脑已l是上大学的标配了。当然如果有旉Q试着玩玩q是很有的Q而且树莓z应用范围非常q泛Q学了不吃亏?/p>

zYx.Tom 2019-03-19 12:03 发表评论
]]>
《Y件开发与创新》的MW记http://m.tkk7.com/zhuyuanxiang/archive/2019/03/19/433678.htmlzYx.TomzYx.TomTue, 19 Mar 2019 03:57:00 GMThttp://m.tkk7.com/zhuyuanxiang/archive/2019/03/19/433678.htmlhttp://m.tkk7.com/zhuyuanxiang/comments/433678.htmlhttp://m.tkk7.com/zhuyuanxiang/archive/2019/03/19/433678.html#Feedback0http://m.tkk7.com/zhuyuanxiang/comments/commentRss/433678.htmlhttp://m.tkk7.com/zhuyuanxiang/services/trackbacks/433678.html

全书总评

  • 书本印刷质量Q?星。纸张稍有点薄,当然印刷清楚Q文字排版合适,基本没有排版q程中引入的错误Q阅M累眼睛?
  • 著作~写质量Q?星。各位大牛应~书的需要,针对“Y件开发与创新”这个方向,写了点自qȝ。主要包括:软g开发的语言、Y件开发过E中的测试、Y件开发中遇到的其他问题以及如何进行数据可视化?
  • 著作译质量Q?星。都是行内h译的作品,本n又都是独立文集,因此译的工作量不算太大Q因此质量还是可以保证的?
  • 代码质量Q?星。其实里面没多少代码Q只有些代码片断Q也是用来说明文章的内容的。对那个语言的熟悉的同学Q阅读v来没压力Q不熟悉的话只有蟩q了?

MW记

Mock Roles, Not Objects[FPMW04]?
  • 对象x促考虑pȝ中是否多个对象彼此交互,保每个对象都有zdQ从而构建出一个健Lpȝ。(不要忙的忙死Q闲的闲死)
  • E序设计中典型安全就是Java的Calendar APIQ过多关注类DW重Q大家喜ƢJoda TimeQ更加简z,更加面向对象?/p>



    zYx.Tom 2019-03-19 11:57 发表评论
    ]]>《神l网l算法与实现-ZJava语言》的MW记http://m.tkk7.com/zhuyuanxiang/archive/2019/03/19/433677.htmlzYx.TomzYx.TomTue, 19 Mar 2019 03:51:00 GMThttp://m.tkk7.com/zhuyuanxiang/archive/2019/03/19/433677.htmlhttp://m.tkk7.com/zhuyuanxiang/comments/433677.htmlhttp://m.tkk7.com/zhuyuanxiang/archive/2019/03/19/433677.html#Feedback0http://m.tkk7.com/zhuyuanxiang/comments/commentRss/433677.htmlhttp://m.tkk7.com/zhuyuanxiang/services/trackbacks/433677.html

    • 书本印刷质量Q?星。纸张很白,印刷清楚Q文字排版合适,基本没有排版q程中引入的错误Q阅M累眼睛?
    • 著作~写质量Q?星。入门书Q看完后可能会对经|络有个基本概念Q但是也可能只有个基本概念。基本概忉|q还是清楚的Q还l出了比较好的参考资料。几个例子讲的很,好处是提供了代码,如果有开发方向的需要可以参考。深入学习神l网l还是参?a >《神l网l和机器学习?/a>q本书吧?
    • 著作译质量Q?星。用的都是常用词汇。对于不了解经|络的读者,通过本书了解一些基本概念,为将来学习其他书c打下基Q对于了解神l网l的读者不会造成概念h?
    • 代码质量Q?星。基本没错误Q但是思\跟书上不完全匚w。比如说Q感知机一般都是单层的Q就是一个神l元Q一个偏|量Q两个输入的|一个输出的|两个权倹{但是作者在试代码中放入两个输入权|一个输出权|不明白,后面都是q样的思\Q于是只好弃了?

    MW记

    C1.初识经|络

    基本概念Qh工神l元Q激zd敎ͼ权|偏置Q层?/p>

    经|络l构Q?/p>

    • 经元连?
      • 单层经|络Q单层感知机Q自适应机,自组l映、Elman|络和Hopfield|络?
      • 多层经|络Q多层感知机Q径向基函数?
    • 信号?
      • 前馈经|络Q多层感知机Q径向基函数?
      • 反馈经|络Q单层的QElman|络和Hopfield|络Q和多层的(递归多层感知机和Echo|络Q?

    C2.经|络是如何学习的

    学习范式Q?/p>

    • 有监督学习:
      • 描述Q已知的数据集与学习得到的结果之间的误差最,最的评hZ某个代h函数?
      • 应用Q图像分c,语音识别Q函数D和趋劉K?
    • 无监督学习:
      • 描述Q从已知的数据集提取知识Q即数据集分类Q类间距dQ类内距dQ评价基于某个代价函数?
      • 应用Q聚cd析,数据压羃Q统计徏模和语言建模?

    学习法Q?/p>

    • 两个阶段Q训l和试?
    • 重要l节Q参数?
    • 评h方式Q误差度量和代h函数?
    • 例子QPerceptron 感知机和Delta规则?

    C3.有监督学习(q用感知机)

    • 单层感知机的作用和局限性:解决U性可分问题,不能解决非线性问题?
    • 多层感知机(MLPQ:
      • 层:
        • 输入层:
        • 隐藏层:ȀzdC般选择双曲正切或者sigmoidQ因为它们是可导的?
        • 输出层:
      • 学习q程Q?
        • 反向传播Q敏感性反向传播。收敛速度比较慢?
        • Levenberg-MarquardtQ?

    C4.无监督学习(自组l映)

    • 竞争学习或赢安吃Q生最大值的经元更新它的权倹{?
    • Kohonen自组l映(Self-Organization MapQ:
      • 一lSOMQ生最大值的经元更新它的权|与之盔R的神l元以相对较低的学习率更新权倹{?
      • 二维SOMQ领域函数判断相ȝ经元,使结构更“组l化”?



    zYx.Tom 2019-03-19 11:51 发表评论
    ]]>Neuroph开发过E?/title><link>http://m.tkk7.com/zhuyuanxiang/archive/2019/01/28/433623.html</link><dc:creator>zYx.Tom</dc:creator><author>zYx.Tom</author><pubDate>Sun, 27 Jan 2019 16:28:00 GMT</pubDate><guid>http://m.tkk7.com/zhuyuanxiang/archive/2019/01/28/433623.html</guid><wfw:comment>http://m.tkk7.com/zhuyuanxiang/comments/433623.html</wfw:comment><comments>http://m.tkk7.com/zhuyuanxiang/archive/2019/01/28/433623.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/zhuyuanxiang/comments/commentRss/433623.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/zhuyuanxiang/services/trackbacks/433623.html</trackback:ping><description><![CDATA[文章提纲 <h4></h4></header> <ul class="toc__menu"> <li><a href="#安装与配|?>安装与配|?/a> <li><a href="#开发小l?>开发小l?/a> <ul> <li><a href="#建立目">建立目</a> <li><a href="#配置目">配置目</a> <li><a href="#理解感知机的代码">理解感知机的代码</a> </li></ul></li></ul></nav></aside> <h2 id="安装与配|?>安装与配|?/h2> <ul> <li>JDK的安装:JRE 1.8以上Q? <li>Neuroph安装Q徏?.94的版本?a >下蝲地址</a> <ul> <li>neuroph-core-2.94Q开发的核心? <li>neuroph-samples-2.94Q用这个框架的例子 </li></ul> <li>Eclipse的安装:是java 2018-09以上的版? <ul> <li>配置“Windows→Preferences→Java→Build Path→User Libraries→New”一个“neuroph-2.94”,再“Add External Jars”就可以把相关的包全部定义在q个变量下面? <li>也可以用Maven配置?</li></ul></li></ul> <h2 id="开发小l?>开发小l?/h2> <h3 id="建立目">建立目</h3> <ul> <li>在Eclipse中创Z个Java目?</li></ul> <h3 id="配置目">配置目</h3> <ul> <li>选中目Q“右键→Properties→Java Build Path→Libraries→Add Library→User Library→neuroph-2.94”即可把相关cdU_到项目中? <h3 id="理解感知机的代码">理解感知机的代码</h3> <li>单层感知机:neuroph-samples-2.94.jar中org.neuroph.samples.PerceptronSample.class <div id="r9hv9bv" class="language-java highlighter-rouge"> <div id="91fttlv" class="highlight"><pre class="highlight"><code><span id="d9lj399" class="kd">public</span> <span id="j33j99t" class="nf">SinglePerceptronAND</span><span id="3rrzl99" class="o">()</span> <span id="9r3dzl9" class="o">{</span> <span id="bb3j9jx" class="c1">// create training set (logical AND function)Q创l集Q符合逻辑与函敎ͼ</span> <span id="l99l3hp" class="n">DataSet</span> <span id="hj339fn" class="n">trainingSet</span> <span id="1jx9jfh" class="o">=</span> <span id="p9bfh9f" class="k">new</span> <span id="3bn99f9" class="n">DataSet</span><span id="3vxtd1v" class="o">(</span><span id="9lvblxv" class="mi">2</span><span id="tdhrtv9" class="o">,</span> <span id="3n9r93f" class="mi">1</span><span id="3lnz3pv" class="o">);</span><span id="ldxr9xd" class="n">trainingSet</span><span id="r39lzp9" class="o">.</span><span id="1v3nljl" class="na">addRow</span><span id="99l9999" class="o">(...);</span> <span id="1x9j19d" class="c1">// create perceptron neural networkQ创建感知机(两个入,一个出Q就是最单的单层一个神l元的神l网l?</span> <span id="b3lrtrh" class="n">NeuralNetwork</span> <span id="xfzd9zf" class="n">myPerceptron</span> <span id="vxjbdt1" class="o">=</span> <span id="pzbnxfp" class="k">new</span> <span id="nvhr3pv" class="n">Perceptron</span><span id="f9l9fvr" class="o">(</span><span id="hht9dbh" class="mi">2</span><span id="r99znt3" class="o">,</span> <span id="399lz9j" class="mi">1</span><span id="x3r13tz" class="o">);</span> <span id="p99vxn9" class="c1">// learn the training setQ学习这个训l集Q就是ؓ了得到神l网l的参数</span> <span id="19dbd99" class="n">myPerceptron</span><span id="nf3rl99" class="o">.</span><span id="f99l9jh" class="na">learn</span><span id="3fp9j9d" class="o">(</span><span id="f3hd9b9" class="n">trainingSet</span><span id="r3dnp3j" class="o">);</span> <span id="p933j9j" class="c1">// test perceptronQ测试这个感知机Q检验它训练的参数是否正?/span> <span id="dbx9r9z" class="n">myPerceptron</span><span id="1f9tvdj" class="o">.</span><span id="vz9v9hf" class="na">setInput</span><span id="1rbl3b9" class="o">(</span><span id="zdrj3zn" class="n">trainingSet</span><span id="vpj999b" class="o">.</span><span id="ppjl33j" class="na">get</span><span id="ff33bd9" class="o">(</span><span id="b3hr9pn" class="mi">0</span><span id="3htdb99" class="o">).</span><span id="h9399jh" class="na">getInput</span><span id="l9j9nl9" class="o">());</span> <span id="jx3tvv9" class="n">myPerceptron</span><span id="rlnphx9" class="o">.</span><span id="3b9f9dj" class="na">calculate</span><span id="dd9x9vl" class="o">();</span> <span id="19jbnlv" class="n">System</span><span id="ll9xjfp" class="o">.</span><span id="3jdnpf9" class="na">out</span><span id="jjd3z9b" class="o">.</span><span id="1h9bf99" class="na">print</span><span id="1j9393z" class="o">(</span><span id="rb9t9zn" class="s">"Input: "</span> <span id="ph9tv9n" class="o">+</span> <span id="nfblpdn" class="n">Arrays</span><span id="9bfzt99" class="o">.</span><span id="d3jbd9d" class="na">toString</span><span id="z9fhjh3" class="o">(</span><span id="dn3zr99" class="n">trainingElement</span><span id="f399v99" class="o">.</span><span id="1dxjlrt" class="na">getInput</span><span id="l9t9fph" class="o">()));</span> <span id="fvjnxnb" class="n">System</span><span id="n9v9pv9" class="o">.</span><span id="bbdfz9r" class="na">out</span><span id="rrt999l" class="o">.</span><span id="t9bvpfl" class="na">println</span><span id="zrbn3t9" class="o">(</span><span id="z3xztz9" class="s">" Output: "</span> <span id="jzl3v3v" class="o">+</span> <span id="rlv3x9f" class="n">Arrays</span><span id="h9dpjzn" class="o">.</span><span id="3z9lfdr" class="na">toString</span><span id="39p999h" class="o">(</span><span id="p39nf9x" class="n">networkOutput</span><span id="fhjdvl3" class="o">));</span> <span id="39x9999" class="o">}</span> </code></pre></div></div></li></ul><img src ="http://m.tkk7.com/zhuyuanxiang/aggbug/433623.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/zhuyuanxiang/" target="_blank">zYx.Tom</a> 2019-01-28 00:28 <a href="http://m.tkk7.com/zhuyuanxiang/archive/2019/01/28/433623.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>HelloHibernate的创E?/title><link>http://m.tkk7.com/zhuyuanxiang/archive/2019/01/25/433622.html</link><dc:creator>zYx.Tom</dc:creator><author>zYx.Tom</author><pubDate>Fri, 25 Jan 2019 03:19:00 GMT</pubDate><guid>http://m.tkk7.com/zhuyuanxiang/archive/2019/01/25/433622.html</guid><wfw:comment>http://m.tkk7.com/zhuyuanxiang/comments/433622.html</wfw:comment><comments>http://m.tkk7.com/zhuyuanxiang/archive/2019/01/25/433622.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/zhuyuanxiang/comments/commentRss/433622.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/zhuyuanxiang/services/trackbacks/433622.html</trackback:ping><description><![CDATA[文章提纲 <h4></h4></header> <ul class="toc__menu"> <li><a href="#安装与配|?>安装与配|?/a> <li><a href="#开发小l?>开发小l?/a> <ul> <li><a href="#建立目">建立目</a> <li><a href="#配置目">配置目</a> <li><a href="#创徏代码">创徏代码</a> </li></ul> <li><a href="#执行目">执行目</a> </li></ul></nav></aside> <h2 id="安装与配|?>安装与配|?/h2> <ul> <li>JDK的安装:使用JRE 1.8以上Q? <li>SQL Server 2000的安装:SQL Server 2000 SP3以上Q? <ul> <li>主要是简单好用,而且资源到处都找得到? <li>SQL Server的“安全性→w䆾验证”中必须包括SQL Server验证Q必L供sa用户Q不需要密码,否则需要修改Hibernate的配|文件?</li></ul> <li>Eclipse的安装:是javaee 2018-09以上的版? <ul> <li>配置“Windows→Preferences→Java→Build Path→User Libraries→New”一个“Hibernate3”,再“Add External Jars”就可以把相关的包全部定义在q个变量下面? <li>SQL Server2000的JAR包安装: <ul> <li>?a >jTDS</a>可以下载到支持SQL Server的JAR包文Ӟ比微软出的SQL Server 2K的JAR包还好(微Y的包会报错)? <li>配置“Windows→Preferences→Java→Build Path→User Libraries→New”一个“jTDS”,再“Add External Jars”就可以把相关的包全部定义在q个变量下面?</li></ul> <li>Hibernate Tools的安装: <ul> <li>可以去JBoss的网站下载完整的安装包; <li>在Eclipse JavaEE中安装,如果在Eclipse Java中安装需要下载许多新的插Ӟ而网l环境不好就安装不成功?</li></ul></li></ul></li></ul> <h2 id="开发小l?>开发小l?/h2> <h3 id="建立目">建立目</h3> <ul> <li>在Eclipse中创Z个Java目? <ul> <li>说明QHibernate不仅用在Web目中,也可以在Java目中用,只是安装参考前面的说明Q?</li></ul> <li>在SQL Server的“企业管理器”中创徏一个名字叫“Hibernate”的数据库? <li>在“Hibernate”数据库中创Z个“MESSAGE”的表?</li></ul> <div id="vx1jt39" class="language-sql highlighter-rouge"> <div id="3pj93n9" class="highlight"><pre class="highlight"><code><span id="vhjtdbj" class="k">CREATE</span> <span id="39nh93h" class="k">TABLE</span> <span id="n9r9lnt" class="p">[</span><span id="trdfhxl" class="n">dbo</span><span id="39d3dt9" class="p">].[</span><span id="b9pjtrp" class="n">MESSAGE</span><span id="3p9zj9j" class="p">]</span> <span id="z3v9xv9" class="p">(</span> <span id="39vv99v" class="p">[</span><span id="39t99zv" class="n">MESSAGE</span><span id="1jvx999" class="p">]</span> <span id="19tdhnl" class="p">[</span><span id="hn9h9xl" class="n">char</span><span id="zzbd1r9" class="p">]</span> <span id="13399r9" class="p">(</span><span id="drtfzxv" class="mi">10</span><span id="l9ztdtz" class="p">)</span> <span id="rpzbvbr" class="k">COLLATE</span> <span id="f9jl9b9" class="n">Chinese_PRC_CI_AS</span> <span id="3htnx9r" class="k">NULL</span> <span id="rp3j9f9" class="p">)</span> <span id="jhr9flb" class="k">ON</span> <span id="p9dp399" class="p">[</span><span id="33rlfll" class="k">PRIMARY</span><span id="trl3db9" class="p">]</span> </code></pre></div></div> <h3 id="配置目">配置目</h3> <ul> <li>选中目Q“右键→Properties→Java Build Path→Libraries→Add Library→User Library→Hibernate 3”即可把相关cdU_到项目中? <li>选中目Q“右键→Properties→Java Build Path→Libraries→Add Library→User Library→jTDS”即可把相关cdU_到项目中? <h3 id="创徏代码">创徏代码</h3> <li>创徏一个新的类Message <div id="jzdxhf3" class="language-java highlighter-rouge"> <div id="z939brb" class="highlight"><pre class="highlight"><code><span id="93tvvv9" class="kn">package</span> <span id="llvxhxh" class="n">sample</span><span id="31nzb99" class="o">.</span><span id="hfxjlj3" class="na">entity</span><span id="xnpht39" class="o">;</span> <span id="xlxzj3t" class="kd">public</span> <span id="3l9hrp3" class="kd">class</span> <span id="zn3j99b" class="nc">Message</span> <span id="djnppnp" class="o">{</span> <span id="d3r9999" class="kd">private</span> <span id="xnzz3hp" class="n">String</span> <span id="v3hblbd" class="n">message</span><span id="19f9h9h" class="o">;</span> <span id="rjdnpnb" class="kd">public</span> <span id="r9phbhv" class="nf">Message</span><span id="3f9j9xx" class="o">(</span><span id="3jnprpv" class="n">String</span> <span id="bzl3nl9" class="n">message</span><span id="3f9r9vt" class="o">)</span> <span id="1nrt3zp" class="o">{</span> <span id="13dpz99" class="k">this</span><span id="ntf99j3" class="o">.</span><span id="3b9vbxn" class="na">message</span> <span id="zhbl399" class="o">=</span> <span id="9dxh99r" class="n">message</span><span id="1vx39tt" class="o">;}</span> <span id="9b39r9r" class="kd">public</span> <span id="pf3r99r" class="n">String</span> <span id="19z9jx9" class="nf">getMessage</span><span id="rzlnx39" class="o">()</span> <span id="nrl3n3n" class="o">{</span> <span id="dbvxbz1" class="k">return</span> <span id="93bd39l" class="n">message</span><span id="b3pr9fl" class="o">;}</span> <span id="jzlnx3r" class="kd">public</span> <span id="brt9tjl" class="kt">void</span> <span id="x3x93b9" class="nf">setMessage</span><span id="3zd9pfh" class="o">(</span><span id="fv33xdl" class="n">String</span> <span id="hnh3j9l" class="n">message</span><span id="3b9fl9p" class="o">)</span> <span id="d99prh9" class="o">{</span> <span id="999jndn" class="k">this</span><span id="znzbdtp" class="o">.</span><span id="j33f999" class="na">message</span> <span id="djv1xnl" class="o">=</span> <span id="39hb9p3" class="n">message</span><span id="nnpjtjr" class="o">;}</span> <span id="f39rtzf" class="o">}</span> </code></pre></div></div> <li>创徏一个测试类 <div id="zpz3bzx" class="language-java highlighter-rouge"> <div id="3bd9dt9" class="highlight"><pre class="highlight"><code><span id="vvxtn3x" class="kn">package</span> <span id="tjldhn1" class="n">sample</span><span id="trbxr3t" class="o">.</span><span id="xx39z9r" class="na">entity</span><span id="3l99d9v" class="o">;</span> <span id="rp19z9h" class="kd">public</span> <span id="3lxrt9b" class="kd">class</span> <span id="tb39zn9" class="nc">PopulateMessages</span> <span id="39nrt99" class="o">{</span> <span id="pnp99p9" class="kd">public</span> <span id="p9vxzxt" class="kd">static</span> <span id="zxr3n9h" class="kt">void</span> <span id="hhz31dt" class="nf">main</span><span id="pfzn9lz" class="o">(</span><span id="x3bddlr" class="n">String</span><span id="3fhbvlj" class="o">[]</span> <span id="r9xzrz9" class="n">args</span><span id="9x99bpn" class="o">)</span> <span id="x3d9dtr" class="o">{</span> <span id="brd9vbz" class="n">SessionFactory</span> <span id="px3l9lr" class="n">factory</span> <span id="399lxvt" class="o">=</span> <span id="d3xj9p9" class="k">new</span> <span id="r939brx" class="n">Configuration</span><span id="br39ndb" class="o">().</span><span id="tblf3l9" class="na">configure</span><span id="3dfhzr9" class="o">().</span><span id="d9p3rf9" class="na">buildSessionFactory</span><span id="f9jv399" class="o">();</span> <span id="9frlf9z" class="n">Session</span> <span id="33d9vtz" class="n">session</span> <span id="rpzt33d" class="o">=</span> <span id="3hbvxxv" class="n">factory</span><span id="dbdn993" class="o">.</span><span id="r39zt3l" class="na">openSession</span><span id="3f999nv" class="o">();</span> <span id="n3jlvtz" class="n">session</span><span id="9fzt9r9" class="o">.</span><span id="3v9jd99" class="na">beginTransaction</span><span id="pxzb9pf" class="o">();</span> <span id="vt3ztz9" class="n">Message</span> <span id="rhzln3x" class="n">message</span> <span id="v3tv9tz" class="o">=</span> <span id="3rvf9tz" class="k">new</span> <span id="jf3r9hn" class="n">Message</span><span id="3ztn193" class="o">(</span><span id="l399x3z" class="s">"Hibernated"</span><span id="f3jl1vl" class="o">);</span> <span id="fdph9j9" class="n">session</span><span id="bjl9x9z" class="o">.</span><span id="p3jnjz9" class="na">save</span><span id="lr1bvlt" class="o">(</span><span id="lz39bz9" class="n">message</span><span id="bzj399l" class="o">);</span> <span id="hf3pbzx" class="n">session</span><span id="xvfznt9" class="o">.</span><span id="t39zj9d" class="na">getTransaction</span><span id="j9v9hh9" class="o">().</span><span id="vn3xrx9" class="na">commit</span><span id="39rbpph" class="o">();</span> <span id="xvzrh9z" class="n">session</span><span id="zx3r3vl" class="o">.</span><span id="tbnp9nt" class="na">close</span><span id="d3jdh9b" class="o">();</span> <span id="xn3fz9b" class="o">}</span> <span id="b9f9zhr" class="o">}</span> </code></pre></div></div> <li>创徏一个Hibernate的配|文Ӟ“New→Other→Hibernate Configuration File→hibernate.cfg.xml?</li></ul> <div id="zfh99xx" class="language-xml highlighter-rouge"> <div id="bz39f9f" class="highlight"><pre class="highlight"><code><span id="p399bbx" class="cp"><?xml version="1.0" encoding="UTF-8"?></span> <span id="n9htdjh" class="cp"><!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"></span> <span id="9z99zpn" class="nt"><hibernate-configuration></span> <span id="3tx99vl" class="nt"><session-factory</span> <span id="z9lv93n" class="na">name=</span><span id="l39fz39" class="s">"Hibernate"</span><span id="zrdphfn" class="nt">></span> <span id="zzjd9jr" class="nt"><property</span> <span id="99fz9fl" class="na">name=</span><span id="x39lndt" class="s">"hibernate.connection.driver_class"</span><span id="39pz9bb" class="nt">></span>net.sourceforge.jtds.jdbc.Driver<span id="bprl9pv" class="nt"></property></span> <span id="9j93bhx" class="nt"><property</span> <span id="f9r9dt3" class="na">name=</span><span id="h9lftbj" class="s">"hibernate.connection.url"</span><span id="bxbdr9h" class="nt">></span>jdbc:jtds:sqlserver://127.0.0.1:1433;DatabaseName=hibernate<span id="d9d39br" class="nt"></property></span> <span id="9hj9t9t" class="nt"><property</span> <span id="dxztr39" class="na">name=</span><span id="zldprpx" class="s">"hibernate.connection.username"</span><span id="z3tv9tz" class="nt">></span>sa<span id="llnz9v9" class="nt"></property></span> <span id="xv39d9v" class="nt"><property</span> <span id="ft1v99p" class="na">name=</span><span id="9dhjpnv" class="s">"hibernate.dialect"</span><span id="rnrtv99" class="nt">></span>org.hibernate.dialect.SQLServerDialect<span id="3dp3rz9" class="nt"></property></span> <span id="399zt9b" class="nt"><property</span> <span id="r3d9hfn" class="na">name=</span><span id="xf3pzxf" class="s">"hibernate.show_sql"</span><span id="zxj3l9l" class="nt">></span>true<span id="n9jdxd3" class="nt"></property></span> <span id="3vpb999" class="nt"><mapping</span> <span id="ntf9jx9" class="na">resource=</span><span id="rxzlv3v" class="s">"sample/entity/Message.hbm.xml"</span><span id="3jlvxv9" class="nt">/></span> <span id="tj3lxv3" class="nt"></session-factory></span> <span id="jjdvhf3" class="nt"></hibernate-configuration></span> </code></pre></div></div> <ul> <li>创徏一个Hibernate的映文Ӟ“New→Other→Hibernate XML Mapping File”,把多余的文g和目录移除,“Add Class→Message→Finish”就可以了?</li></ul> <div id="pxpjdjl" class="language-xml highlighter-rouge"> <div id="z9v9h9z" class="highlight"><pre class="highlight"><code><span id="vtv3fv9" class="cp"><?xml version="1.0"?></span> <span id="ftvrb3l" class="cp"><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"></span> <span id="n3rtv3v" class="c"><!-- Generated 2019-1-23 19:49:53 by Hibernate Tools 3.5.0.Final --></span> <span id="3t9fxxx" class="nt"><hibernate-mapping></span> <span id="3lpzdbl" class="nt"><class</span> <span id="rzl3drr" class="na">name=</span><span id="3r9dnv3" class="s">"sample.entity.Message"</span> <span id="xln39jp" class="na">table=</span><span id="d99j9hn" class="s">"MESSAGE"</span><span id="n9b93fv" class="nt">></span> <span id="1jv9r9d" class="nt"><id</span> <span id="pn9rlz9" class="na">name=</span><span id="39dn999" class="s">"message"</span> <span id="r9dx9l9" class="na">type=</span><span id="99jt99l" class="s">"java.lang.String"</span><span id="9fz99fl" class="nt">></span> <span id="13tx9tb" class="nt"><column</span> <span id="9bnb9xt" class="na">name=</span><span id="1l93pfv" class="s">"MESSAGE"</span> <span id="ltfrndj" class="nt">/></span> <span id="vdfp9xv" class="nt"><generator</span> <span id="hx3bdlj" class="na">class=</span><span id="zprbxl9" class="s">"assigned"</span> <span id="lbdf39x" class="nt">/></span> <span id="nt9p99t" class="nt"></id></span> <span id="tjnfd9x" class="nt"></class></span> <span id="vtnx9rx" class="nt"></hibernate-mapping></span> </code></pre></div></div> <h2 id="执行目">执行目</h2> <ul> <li>q行PopulateMessages可以看到结果了?</li></ul><img src ="http://m.tkk7.com/zhuyuanxiang/aggbug/433622.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/zhuyuanxiang/" target="_blank">zYx.Tom</a> 2019-01-25 11:19 <a href="http://m.tkk7.com/zhuyuanxiang/archive/2019/01/25/433622.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>《测试驱动开发》的MW记http://m.tkk7.com/zhuyuanxiang/archive/2019/01/18/433616.htmlzYx.TomzYx.TomFri, 18 Jan 2019 15:25:00 GMThttp://m.tkk7.com/zhuyuanxiang/archive/2019/01/18/433616.htmlhttp://m.tkk7.com/zhuyuanxiang/comments/433616.htmlhttp://m.tkk7.com/zhuyuanxiang/archive/2019/01/18/433616.html#Feedback0http://m.tkk7.com/zhuyuanxiang/comments/commentRss/433616.htmlhttp://m.tkk7.com/zhuyuanxiang/services/trackbacks/433616.html《测试驱动开发》的MW记
  • 试驱动开发的规则
  • 试E序开发周期的阶段

      《测试驱动开发》的MW记

      学习基础Q?/h3>

      熟悉《设计模式》的基本概念Q熟悉《重构》的基本概念Q熟悉基本的Java语法Q熟悉Eclipse和JUnit的用,有相对较好的p基础?/p>

      学习q程Q?/h3>
      • W?部分Q手工输入实例程序,了解TDD的方法和q程。重Ҏ理解TDD的思\Q最好的理解方式是通过实践的方式理解?
      • W?部分Q教你如何用Python实现一个符合xUnit的测试框架?
      • W?部分QTDD的模式,q些模式展现TDD如何与其他重要思想Q例如:设计模式、重构等{)一起工作的?

      学习目的Q?/h3>

      ~写正确的代码?/p>

      学习感悟Q?/h3>
      • 道理很简单,操作也很单,但是我仍然无法明了作者许多重构操作的意图Q只是感觉作者可能是从直觉出发写Z码,再通过重构推进试代码与品代码之间的解耦。(知其Ӟ不知其所以然Q?
      • 可以先蟩q第2部分Q了解xUnit如何实现固然重要Q但是ؓ此变成先学Python有点跑题了
      • q可以蟩q第3部分Q这部分都是作者从思想上对TDD的ȝQ俗话说“不吃亏不涨记性”,{自己在目中吃够了亏再来回ֈ人的l验Q才会真正共鸣吧?

      学习代码Q?/h3>

      代码很简单,不需要再提供Q反而最重要的是自己一定要手工跟一遍,否则无法领会作者的意图。至,我在豆瓣上看了几个评论,大部分都是看懂了Q没感觉?/p>

      试驱动开发的规则

      1. QP4Q明设计目标,完善试代码
        • 消除重复设计x消除依赖关系Q测试代码与产品代码之间的依赖关p)Q?
        • 试驱动开发不是通过一步一步来完成的Q而是培养一步一步开发Y件的能力。因为简单的问题可以走快点,复杂的问题就可以走慢炏V?
      2. QP12Q完善品代?
        • 完成知道怎么做的产品代码Q?
        • 补充不知道怎么做的产品伪代码?
      3. QP14Q寻N含的开发目标,完善试代码
        • 利用三角法发C品代码中的问题( 三角法:当例子不?个的时候才完善代码。可以在没有设计思\的时候,换个角度思考问题)
        • 利用重构解决发现的问?
      4. QP17Q通过开发的功能来重构测试代?
      5. QP33Q不打断自己已经在做的工作,如果非要打断也不要在新的工作中花太长的时_q且不能再次打断q个新的工作。(事不q三Q?
      6. QP34Q找到自q开发节奏。(一开始慢一点,慢慢加快Q再调整回慢Q直到找到自己最合适的节奏感)
      7. QP42Q删除不需要的子类Q会发现试代码中存在的不需要的试也可以删除(攑ּ不需要的东西Q会帮助你发Cq需要什么)

      试E序开发周期的阶段

      1. 写一个测试程序;
      2. 让测试程序编译通过Q?
      3. q行试E序Q发C能运行;
      4. 让测试程序可以运行;
      5. 消除重复设计Q优化设计结构?


    • zYx.Tom 2019-01-18 23:25 发表评论
      ]]>
      《单元测试之道Java版》的MW记http://m.tkk7.com/zhuyuanxiang/archive/2019/01/16/433606.htmlzYx.TomzYx.TomWed, 16 Jan 2019 09:57:00 GMThttp://m.tkk7.com/zhuyuanxiang/archive/2019/01/16/433606.htmlhttp://m.tkk7.com/zhuyuanxiang/comments/433606.htmlhttp://m.tkk7.com/zhuyuanxiang/archive/2019/01/16/433606.html#Feedback0http://m.tkk7.com/zhuyuanxiang/comments/commentRss/433606.htmlhttp://m.tkk7.com/zhuyuanxiang/services/trackbacks/433606.html总览
    • W??首个单元试
    • W??使用JUnit~写试
    • 5.CORRECTQ正的Q边界条?/a>
    • 6.使用Mock对象
    • 7. 好的试所h的品?A-TRIP)
    • 8. 在项目中q行试
    • 9. 设计话题

        总览

        q是本相对简单的书,书中采用的JUnit的版本也是旧的,但是在新的JUnit4下稍做修改依然可以运行。重要的是通过q本书了解JUnit在Java的单元测试中是如何用的?/p>

        W??首个单元试

        计划你的试Q测试不是无中生有的Q也不是意想天开的。是Ҏ需要一点点d的,帮助自己早地发现思考上的误区。参看这章给出的例子Q原来理所当然正确的,l果不一定是正确的?/p>

        W??使用JUnit~写试

        3.1 构徏单元试

        试代码必须要做的几件事情:

        • 准备试的条Ӟ创徏对象、分配资源等{)
        • 调用试的方?
        • 验证试Ҏ的行Z期望是否相符
        • 试l束后清理现场(释放资源{等Q?

          3.2 JUnit的各U断a

          断言QJUnit提供的辅助函敎ͼ帮助你确认被试函数是否正确q行?/p>

        后面q介l了Q?.5 JUnit的自定义断言Q?/p>

        3.3 JUnit框架

        q章是基于JUnit3.x写的Q徏议了解就可以了,因ؓJUnit4的变化较大,使用也更方便直观Q因此直接参?a >JUnit4的帮?/a>?/p>
        框架q行序 对应于标{?/th>
        setUpBeforeClass() @BeforeClass
           
        setUp() @Beofre
        testMethod1()  
        tearDown() @After
           
        setUp() @Before
        testMethod2()  
        tearDown() @After
           
        tearDownAfterClass() @AfterClass

        5.CORRECTQ正的Q边界条?/h2>
        • 一致性(ConformanceQ:值是否符合预期的格式Q?
        • 有序性(OrderingQ:一l值是否符合对排序的要求(有序性、无序性)Q?
        • 区间性(RangeQ:值是否在合理取D围内Q在最g最大g_Q?
        • 引用QReferenceQ?耦合性:代码是否引用了不受代码本w直接控制的外部因素Q?
        • 存在性(ExistenceQ:值是否存在(例如Q非NULLQ非Ӟ包含于某个集合等{)
        • 基数性(CardinalityQ:是否恰好有够的|Q也UCؓ集合的势Q即集合里面包含的元素个敎ͼ
        • 旉性(TimeQ?l对旉和相Ҏ_所有的事情是否按照序发生Q是否在正确的时间发生?是否及时发生Q?

        6.使用Mock对象

        Mock对象解决的问题:

        • 真实对象h不可定的行为(如:股票行情Q;
        • 真实对象很难被创建;
        • 真实对象的某些行为很难被触发Q如Q网l错误)Q?
        • 真实对象令程序的q行速度很慢Q?
        • 真实对象有用L面或者就是用L面;
        • 真实对象需要被询问它是如何被调用的Q如Q验证某个回调函数是否被调用Q;
        • 真实对象实际上不存在Q如Q其他开发小l的接口、或者某个没有的g产品Q?

        Mock对象解决的步骤:

        • 使用一个接口来描述q个对象Q?
        • Z品代码实现这个接口;
        • 以测试ؓ目的Q在Mock对象中实现这个接口?

        注:q里的Mock不是|上已经形成框架的Mock工具Q是Mock的实现原理。作者推荐的Mock工具?a >EasyMock。其他的Mock工具可以参考《[使用Mockq行单元试]?https://blog.csdn.net/u011393781/article/details/52669772)

        7. 好的试所h的品?A-TRIP)

        如何保试代码是正的呢?

        • 对品代码中的Bugq行修改的时候也改进试代码Q(因ؓq个Bug是测试代码没有发现的Q?
        • 在品代码中引入Bug来验证测试代码的正确性。(保可能会发生的错误被测试代码捕捉到了)

        8. 在项目中q行试

        • 把测试代码与产品代码攑֜一个目录下Q?
        • 与别人共享代码的时候,需要确保你的代码可以通过所有测试;
        • 试的时间点Q?
          • ~写新的函数Q?
          • 修正BugQ?
          • 每次成功~译之后Q?
          • 每次对版本控制的提交Q?
          • 持箋不断地由专门的机器来q行完整的构建和试?
        • 试别h的项目代码:其实是l护别h的项目绝Ҏ个大问题Q同时也是个必须面对的问题。需要理性的态度Q不批评别h的代码)、冷静的手段Q不随便修改别h的代码)、持久的耐心Q先从测试代码开始,慢慢重构目代码Q之重新回到健L态)、真正的智慧Q知道什么样的项目应该达C么样的目标,不执着于重构成一个完的状态,也不单放弃随之自生自灭。)
        • 试与评审:三个臭皮匠顶个诸葛亮Q放下自我的执着Q接U_U不同的意见Q才能做Zo自己满意的项目?

        9. 设计话题

        • 面向试的设计:不方便测试的设计不是好的设计Q说明设计过于僵化或者臃肿,需要简化或者修改之更利用未来的扩展和l护?
        • 面向试的重构:不方便测试的代码不是好的代码Q说明业务؜杂在一P无法实现一个函数只针对一h试,需要修改设计业务分离?
        • 试cȝ不变性:是对类的断a必须为真?
          • 有序性。例如:sorted listcȝ不变性就是无论发生什么,l果都应该是有序的?
          • l构化。例如:订单pȝ中每个条目必d于一个订单,一个订单拥有一个或多个条目?
          • 数学不变性。例如:银行账号的的借贷必须q?
          • 数据一致性。例如:商品L=库存?销售数?
        • 试驱动的设计。你作Z品代码的用户在编码,而不是品开发者在~码Q开发结果更能反应用L需求?
        • 试无效的参数。当你作Z品代码的用户Ӟ你才能真正确定哪些责d该你来承担,而哪些是不需要的。例如:无效的参数应该由哪个函数来承担检查责dQ?


      • zYx.Tom 2019-01-16 17:57 发表评论
        ]]>
        վ֩ģ壺 ˿ҺƵ| ޳AVƬ߹ۿ| tomӰԺ޹һ| AV뾫Ʒ| aƬѿ| ŷһ| þþþþþƷͼƬ| ƵѲ| ɫžžȫƵ| vaþþþ| պϵ| 㶮ַѹ| ɫַ| ɫۺ| ˳ɼƵ߹ۿ | 4480yy˽ӰԺ| ˳վ߹ۿ| պëƬ| ˳wwwӰ| Ѵվ߹| ˿wwwƵ| VƬ߹ۿ| ޲avһ| þþþ޾ƷĻ| ѹۿƵվ| ѹվ߹ۿ| ޲Ƶ߹ۿ| ëƬһëƬ| Ļһ| ޾ƷƬ߹ۿ| ޸߲| 182tvѹۿƵ| ƷһƵ| AvרDVD| Ļһ | aëƬƵ| APPѹۿƵ| þۺϾɫۺ97| ŷͽȺ| AV볱߹ۿ| þþ뾫Ʒպ |