抽象类和抽象方法以及接口

决策树算法优化(一篇文章 理解) 综上所述,决策树算法虽然有一些缺点,但通过剪枝、集成学习、连续变量处理、特征选择优化以及参数调优等方法,可以有效地优化其性能,提高模型的泛化能力和预测准确性。当然,这只是一个简要的概述,对于每个优化策略,都有更深入的研究和实践可以探索。希望这对你有所启发! 阅读详情

抽象类和抽象方法以及接口

# 抽象类和抽象方法
首先抽象的含义就是就是抽取本质特征(共性),加以简单描述。
①抽象类:一个设计的非常抽象,以至于它都没有任何具体的实例,这便是抽象类。
②抽象方法:在方法头前面加abstract关键字修饰

public abstract void getArea{
	类体;
}

一般形式:访问修饰符 abstract 返回类型 方法名(参数列表)
抽象方法要求在派生类中重写 抽象方法的类会自动变成抽象类
实例:重写会出现三角形,如果是抽象的,那三角形是实心的三角形
重要语法点:
(1):抽象类可以包含零至多个普通方法,也可以含零至多个普通方法;
(2):不论抽象类是否含抽象方法,其都不允许实例化
(3):若父类是抽象类,且子类不能成为抽象类
什么时候使用抽象方法?
当多个类有相同的方法,但方法体不一样,这时候就可以抽取出抽象方法
抽象类和抽象方法的特点:
1.抽象方法美没有方法体
2.如果一个类有抽象方法,那这个类必须定义为抽象类
3.抽象类可以有抽象方法和非抽象方法
4.抽象类不能继承new对象
5.继承抽象类,就必须重写抽象类里的所有抽象方法
抽象类的使用:
定义父类为抽象类,包含抽象方法
子类继承父类,实现父类的所有抽象方法
例子:

/**
   The StockPurchase class represents a stock purchase.
*/

public class StockPurchase
{
   private Stock stock;  // The stock that was purchased
   private int shares;   // Number of shares owned

   /**
      Constructor
      @param stockObject The stock to purchase.
      @param numShares The number of shares.
   */

   public StockPurchase(Stock stockObject, int numShares)
   {
      // Create a copy of the object referenced by
      // stockObject.
	   stock = new Stock(stockObject);
	   shares = numShares;
      
   }
   
   /**
      getStock method
      @return A copy of the Stock object for the stock
              being purchased.
   */
   
   public Stock getStock()
   {
      // Return a copy of the object referenced by stock.
      return new Stock(stock.getSymbol(), stock.getSharePrice());
   }
   
   /**
      getShares method
      @return The number of shares being purchased.
   */
   
   public int getShares()
   {
      return shares;
   }

   /**
      getCost method
      @return The cost of the stock purchase.
   */
   
   public double getCost()
   {
      return shares * stock.getSharePrice();
   }
}


接口

1.接口的概念:如果一个类之中只是由抽象方法和全局变量所组成,那么在这种情况下不会将其定义为一个抽象类,而只会将其定义为接口,所以接口严格来说就属于一个特殊的类,而且这个类里面只有抽象方法与全局变量,要定义一个接口使用interface关键字来完成
举例:

interface A{//定义了接口
public static final String zsw="hello";//全局变量
//抽象方法
public abstract void print();
}

接口中所有的方法都是public;接口不能被实例化;接口必须在别处重写。

接口中的属性:public,final(没法被继承),static;

如果一个类想要实现接口需要在类头使用:implements关键字

public class RubberDuck extends Duck implements Quackable

在这里插入图片描述
接口只能继承接口不能继承类
由于接口里面存在有抽象方法,所以接口对象不可能直接使用关键字new进行实例化的操作,所以接口的使用原则如下:
1.接口必须要有子类,但是此时一个子类可以使用implements关键字实现多个接口;
2.接口的子类(如果不是抽象类),必须要覆写接口中的全部抽象方法;
3.接口的对象可以利用子类对象的向上转型进行实例化操作

interface A {// 定义了接口
	public static final String MSG = "Hello";// 全局常量
	// 抽象方法
 
	public abstract void print();
}
 
interface B {
	public abstract void get();
}
 
class X implements A, B {// X类实现A和B两个接口
 
	@Override
	public void get() {
		System.out.println("B接口的抽象方法!");
	}
 
	@Override
	public void print() {
		System.out.println("A接口的抽象方法!");
	}
}
 
public class Demo {
	public static void main(String args[]) {
		X x = new X();
		A a = x;// 向上转型
		B b = x;// 向上转型
		a.print();
		b.get();
	}
}

抽象与接口的比较点:
在这里插入图片描述
总结:
1.接口与抽象类定义的不同;
2.接口作为标准用于解耦合以及不同层之间的连接桥梁;

决策树算法的优缺点与改进方法 决策树算法机器学习中具有重要地位,因其直观易懂和实施简单而广受欢迎。然而,决策树也存在一些固有的缺点。为了克服这些缺点,研究者提出了多种改进方法,如随机森林和梯度提升树。本文将详细讨论决策树的优缺点,并介绍常见的改进方法及其实现。 阅读详情

相关推荐

Linux实训项目7————Shell编程

Linux实训项目7——Shell编程实训项目7一、实训目的二、项目背景三、实训内容四、实训步骤五、实训思考题六、实训报告要求我的脚本代码注意事项 实训项目7 一、实训目的 掌握Shell环境变量、管道、输入输出重定向的使用方法。 熟悉Shell程序设计。 二、项目背景 某单位的系统管理员计划用Shell编程编写一个程序实现USB设备的自动挂载。程序的功能如下: 运算程序时,提示用户输入“y”或“n”,确定是不是挂载USB设备。 如果用户输入“y”,则挂载这个USB设备。 提示用户输入“y”或“n”,

windows_four的博客 3693

梯度提升决策树GBDT及其优秀改进XGBoost的浅析

梯度提升决策树 英文是Gradient Boosting Decision Tree (GBDT)。是一种迭代的决策树算法,由多棵决策树组成,将所有树的结论累加起来做最终答案。值得注意的是,GBDT中的树都是回归树,不是分类树。GBDT主要用于回归问题(包括线性和非线性),但也可以用于分类问题。 我们在已经搞清楚决策树(DT)部分的前提下,可以简单看看梯度迭代(GB)。GB核心的思想就是每一棵树都在学习之前所有树结论和的残差。 输入 训练集数据D={(xi,yi)}i=1ND = \{(x_i,y_i)\}

八门金锁的技术博客 1724

数据结构与算法决策树的改进方案

决策树是数据挖掘和机器学习的核心算法之一,广泛应用于金融风控、医疗诊断、推荐系统等领域。但直接使用基础决策树模型时,常遇到“模型在训练数据上完美,在新数据上翻车”的尴尬。本文将聚焦决策树的核心缺陷,从原理到代码,详解如何通过改进让决策树从“机械学习者”升级为“智能决策者”。用“选西瓜”案例讲清决策树的核心逻辑;拆解传统决策树的三大痛点(过拟合、特征选择偏差、噪声敏感);详解六大改进方案(随机森林、GBDT、特征选择优化等);Python实战对比基础决策树与改进模型的效果差异。

AI 算法实战派 757

决策树的缺点与优化方法:提高模型性能

1.背景介绍 决策树(Decision Tree)是一种常用的机器学习算法,它可以用于对数据进行分类和回归分析。决策树通过构建一个树状结构来表示数据集中的模式,每个节点表示一个特征,每个分支表示一个决策规则。尽管决策树简单易用,但它也存在一些缺点,需要进行优化以提高模型性能。 在本文中,我们将讨论决策树的缺点以及如何进行优化,以提高模型性能。我们将从以下几个方面进行讨论: 背景介绍 核心概...

AI天才研究院 1283

利用决策树预测学生成绩等级

文章目录1.数据准备1.1 引入头文件1.2 把student_1.csv数据拖入代码的同一文件夹下,同时读取文件中的数据。1.3 特征选取2.数据处理2.1 对G1、G2、G3处理2.2 同样对Pedu参数进行连续值处理。2.3 由于数据集中每个参数差异比较大,所以这里把特征参数统一改为数字形式。2.4 对于当前处理过的数据集,划分训练集和测试集,并设置好随机种子等其他参数。3.训练得到的模型3.1 决策树3.1.1 开始对训练集中的数据进行训练。3.1.2 利用已经训练好的模型来预测G3的值。3.1.3

极客园地 8279

项目项目实训

实训的主要任务是通过编写简单的shell脚本,完成使用数据输入输出命令获取用户输入,将脚本输出 写入文件,以及重定向脚本的输入输出操作,并通过设置变量存储不同类型的数据,以便在脚本中处理 数据。(1)掌握shell脚本的基本格式。(2)掌握输入输出重定向和管道符的使用方法。(3)掌握数据输入输出命令的使用方法。(4)掌握变量的定义和调用方法。(5)掌握运算符的使用方法。(1)使用输入输出重定向,将Shell脚本的输出重定向到文件。

lyfy060415的博客 1965

项目实训总结

项目实训总结一.前言二.工作过程记录三.感想 一.前言 为期一个月项目实训即将结束,本次项目实训我选择的题目是“可视化在线选座微信小程序开发项目”,主要的任务是进行后端开发,负责PC端的功能实现,包括教学管理,申诉管理和报修管理。经过一个月的共同努力,我和队友们共同完成了这一系统。在这个过程中,不仅将许多课堂上的知识运用到实践之中,还学习到了许多课堂之外的知识,并且积累了宝贵的项目开发经验。 二.工作过程记录 第一周主要是学习和了解各种可能会使用到的技术。本次开发后端使用的是Spring boot,在这之

YLHYWXHN的博客 5302

Shell条件控制——实训项目任务

2)在Linux操作系统中创建shell脚本if-diskcheck.sh,用于检查根分区的使用率,并在使用率超过警告阈值时发送警告电子邮件至指定的电子邮箱。(1)在Linux操作系统中创建Shell脚本case-user.sh,用于检查磁盘、内存、CPU等使用情况。(1)在Linux操作系统中创建shell脚本if-user.sh,实现创建用户和设置用户密码功能。(2)在huawei家目录中,创建脚本文件if-diskcheck.sh。(1)在huawei家目录中,创建脚本文件if-user.sh。

2401_87293951的博客 1815

【C#实训项目总结

经过了6天+1天答辩,实训完美结束。这篇文章记录一下我的收获与感想。

A's World 3500

期末Django项目实训报告

一、实训项目 学生信息管理系统(students) 二、实训项目内容 三、实训总结 通过为期两周的实训

m0_61604047的博客 5059

Shell脚本基础——实训项目任务

在shell中,变量主要用于保存和引用各种类型的数据,可以用于存储各种信息,如字符串、数字等。变量在shell中非常常用, 可以用于存储用户输入的数据、存储程序运行过程中产生的数据、存储程序执行结果,还可以用于条件判断和循环控制、存储文件名和路径、文件处理、存储环境变量、程序的配置和运行等。本实训的主要任务是通过编写简单的shell脚本,完成使用数据输入输出命令获取用户输入,将脚本输出写入文件,以及重定向脚本的输入输出操作,并通过设置变量存储不同类型的数据,以便在脚本中处理数据。

2402_84889879的博客 1885

机器学习】--- 决策树与随机森林

决策树和随机森林作为经典的机器学习算法,已经在众多领域得到了广泛应用。然而,它们的性能在面对复杂的数据时可能会出现瓶颈。通过剪枝、树深度控制、优化特征选择等方法,我们可以提高决策树的泛化能力。同时,通过特征重要性改进、极端随机树的引入和并行化处理,可以在提升随机森林性能的同时减少计算资源的消耗。

2301_80863610的博客 4059

数据集搭建

  在深度学习中,数据集扮演着至关重要的角色。它们是训练机器学习模型的基础,决定了模型能够学习到的模式和特征。要训练自己的模型,首要任务就是找到需要的合适数据集。可以通过在网上查找资源、雇佣人力采集、自己采集等方式实现数据的采集工作。按照给定的标签格式分类,这些数据集可以分类为:  数据集划分:假设你已经拥有了所需要的数据集(别急,下一节会介绍如何构建自己的数据集并将其封装为模型需要的格式),那么如何使用数据集对模型进行训练与评估呢,重要的一点是如何划分训练集与测试集,而训练集又可细分为训练集与验证集,常用

cout_OK的博客 5311

机器学习-决策树-回归-CPU(中央处理单元)数据-python scikit-learn

决策树是一种监督机器学习算法,用于回归和分类任务。树是可以处理复杂数据集的强大算法。不需要数值输入数据进行缩放。无论数值是多少,决策树都不在乎。不同于其他复杂的学习算法决策树的结果是可以解释的,决策树不是黑盒类型的模型。虽然大多数模型都有缺失值的问题,但决策树却没有问题。树可以处理不平衡的数据集,只需要调整类的权重。树可以提供特征的重要性或每个特征对模型训练结果的贡献。树是随机森林和梯度增强机等集成方法的基本构建块。决策树的工作方式就像一系列if/else问题。

weixin_44733966的博客 1254

0 决策树基础

决策树基础知识点

qq_28611929的博客 1331
上一篇: 多态
下一篇: 一元线性回归 R语言
不行不行不行再摆就没了
博客等级 码龄6年 4粉丝 7原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值