今天学习了:
1、原型模式
2、KNN
3、空气炸锅
4、苦瓜炒鸡蛋没做好
1、设计模式-原型模式
原型模式,就是克隆对象。使用了对象的 clone() 方法。
在有些系统中,存在大量相同或相似对象的创建问题,如果用传统的构造函数来创建对象,会比较复杂且耗时耗资源,用原型模式生成对象就很高效,就像孙悟空拔下猴毛轻轻一吹就变出很多孙悟空一样简单。
实现
继承 Cloneable 类,然后写colone的方法。
实例:
class Realizetypeimplements Cloneable
{Realizetype()
{System.out.println("具体原型创建成功!");}
publicObject clone()throws CloneNotSupportedException
{System.out.println("具体原型复制成功!");
return(Realizetype)super.clone();}}
使用
一般用于需要被大量复制的对象,使用的时候调一下clone,就能复制出一个相同的类。
分类
深克隆和浅克隆。
差别主要在引用型对象上。
原型模式的应用场景
原型模式通常适用于以下场景。
对象之间相同或相似,即只是个别的几个属性不同的时候。
对象的创建过程比较麻烦,但复制比较简单的时候。
还有一种说法:
(1)类初始化需要消化非常多的资源,这个资源包括数据、硬件资源等,通过原型拷贝避免这些消耗。
(2)通过new一个对象需要非常繁琐的数据准备或访问权限,可以使用原型模式。
(3)一个对象需要提供给其他对象访问,而且各个调用者可能需要修改其值,可以考虑使用原型模式拷贝多个对象供调用者使用,即保护性拷贝
原文链接:https://blog.csdn.net/d773689630/java/article/details/90696382
原型模式的扩展
原型模式可扩展为带原型管理器的原型模式,它在原型模式的基础上增加了一个原型管理器 PrototypeManager 类。该类用 HashMap 保存多个复制的原型,Client 类可以通过管理器的 get(String id) 方法从中获取复制的原型。其结构图如图 5 所示
k近邻算法
又叫KNN算法,是个很简单的算法。
在特征空间中,如果一个样本附近的k个最近(即特征空间中最邻近)样本的大多数属于某一个类别,则该样本也属于这个类别。
K 值的选择
K 值的选择会对算法的结果产生重大影响。K值较小意味着只有与输入实例较近的训练实例才会对预测结果起作用,但容易发生过拟合;如果 K 值较大,优点是可以减少学习的估计误差,但缺点是学习的近似误差增大,这时与输入实例较远的训练实例也会对预测起作用,使预测发生错误。在实际应用中,K 值一般选择一个较小的数值,通常采用交叉验证的方法来选择最优的 K 值。随着训练实例数目趋向于无穷和 K=1 时,误差率不会超过贝叶斯误差率的2倍,如果K也趋向于无穷,则误差率趋向于贝叶斯误差率。
该算法中的分类决策规则往往是多数表决,即由输入实例的 K 个最临近的训练实例中的多数类决定输入实例的类别
距离度量一般采用 Lp 距离,当p=2时,即为欧氏距离,在度量之前,应该将每个属性的值规范化,这样有助于防止具有较大初始值域的属性比具有较小初始值域的属性的权重过大。
在实际应用中,K值一般取一个比较小的数值,例如采用交叉验证法(简单来说,就是一部分样本做训练集,一部分做测试集)来选择最优的K值。
近似误差和估计误差的关系?
答:近似误差:可以理解为对现有训练集的训练误差。 估计误差:可以理解为对测试集的测试误差。
近似误差其实可以理解为模型估计值与实际值之间的差距。 估计误差其实可以理解为模型的估计系数与实际系数之间的差距。
近似误差,更关注于“训练”。估计误差,更关注于“测试”、“泛化”。
最小化近似误差容易过拟合
最小化估计误差整体的泛化能力好。
原文链接:https://blog.csdn.net/weixin_42234472/java/article/details/85062142
其他特性
KNN算法不仅可以用于分类,还可以用于回归。通过找出一个样本的k个最近邻居,将这些邻居的属性的平均值赋给该样本,就可以得到该样本的属性。
该方法的另一个不足之处是计算量较大,因为对每一个待分类的文本都要计算它到全体已知样本的距离,才能求得它的K个最近邻点。
根据这个算法的原理判断,这个模型搞不了很复杂的数据。搞搞收入划分这种还可以,太复杂的肯定效果不好。
空气炸锅
年后因为疫情一直自己做饭,自己做的饭注重营养控制能量,再加上一些运动,已经瘦到155了。但我很怕麻烦,都是做一些简单的菜。吃的多了就想变个花样。菜谱中很多菜需要油炸,于是就考虑着搞个空气炸锅。但这个东西很贵,而且效果未知,怕买了放在家里闲置。
苦瓜炒鸡蛋
这个菜需要放些水鸡蛋才好吃,但这次水放多了苦瓜老了,下次少放点。
网友评论