1. Python 面向对象思想

[blame Mikivis]

先从 Python 语法开始吧!

难度等级: :star:

背景知识:选择一款自己觉得好用的编译器(vscode?pycharm?jupyter?其实能写python就行啦);学习基础的python语法与面向对象的思想。

1.1 背景——订单管理系统

你被要求设计一个简单的订单管理系统。这个系统应该能够跟踪商品和客户订单。每个订单都有一个或多个商品,每个商品都有名称、价格和库存量。

1.2 任务

  1. 定义一个Product类,该类应该包含以下属性和方法:
    • name: 商品名称
    • price: 商品价格
    • stock: 商品的库存量
    • sell(n): 减少库存的方法,其中n表示销售的数量。如果库存不足,应该抛出一个异常。
    • add_stock(n): 增加库存的方法,其中n表示新增的数量。
  2. 定义一个Order类,该类应该包含以下属性和方法:
    • products: 一个字典,其键是Product对象,其值是订单中该商品的数量。
    • add_product(product, quantity): 向订单中添加商品的方法。
    • total_price(): 返回订单总价的方法。
    • complete_order(): 完成订单的方法。它应检查是否有足够的库存进行销售,并更新库存。如果库存不足,应该抛出一个异常并且不更新库存。

1.3 示例

apple = Product("Apple", 0.5, 100)
banana = Product("Banana", 0.2, 50)

order1 = Order()
order1.add_product(apple, 2)
order1.add_product(banana, 3)

# This should print 2.1 (1 for apples + 1.1 for bananas)
print(order1.total_price())

# This should decrease the stock of apple by 2 and banana by 3
order1.complete_order()

1.4 扩展

  1. Product类增加一个description属性,描述商品的细节。
  2. Order类增加一个date属性,记录订单的日期。
  3. Order类添加一个cancel_order()方法,该方法应取消订单并恢复商品的库存。
  4. 创建一个Customer类,包含name, emailorders (一个Order对象列表)。提供方法来添加订单,查看所有订单和计算客户总共花费了多少钱。

1.5 评估标准

  • 类的结构和设计
  • 方法的实现是否正确
  • 异常处理
  • 代码的可读性和注释

1.6 提交

源代码与代码运行截图

2. 什么是机器学习

[blame Mikivis]

难度等级: :star:

请你用你能查询到的资料,去详细解释一下你所认识的机器学习是什么?包括哪些常见的算法?

了解甚至使用爆火的聊天机器人ChatGPT(后面就有关于它的进阶题),简单说说你的感受。有条件的同学可以去官网尝试,或者去国内一些镜像上体验(这里推荐chat8)。

提交:Markdown文档(什么,你还不知道什么是Markdown?看基础题目)

3. DNN 实现 iris分类

[blame Paradox]

难度等级: :star: :star:

3.1 背景

iris是在sklearn中的数据集,其中每株iris花有四个特征,而iris花有三个品种。我们希望利用DNN针对iris花的四个特征进行分类

3.2 任务

请你下载iris数据集,并根据注释提示完善code.ipynb(在填补问号的同时,你也需要回答注释上的问题,它们可以帮助你更好地学习😊)

数据集下载链接:https://www.synx.tech/wp-content/uploads/2023/09/iris.zip

Tips
1.本题可能需要的知识有:多层感知机,前向传播,梯度下降等
2.本次做题不需要微积分等较多数学知识,大家只需要补全代码和回答问题即可
3.让代码完整跑起来吧哦哈哈哈

3.3 提交

完善后的code.ipynb

4. 应用plus++

[blame Mikivis]

难度等级: :star: :star: :star:

与上题一样,还是一个分类问题,但是更难了哦,数据集中为什么又那么多空值啊,该怎么办呢?

4.1 背景

在分布式系统中某个节点发生故障时,故障会沿着分布式系统的拓扑结构进行传播,造成自身节点及其邻接节点相关的KPI指标和发生大量日志异常。本题目提供分布式数据库的故障特征数据和标签数据,其中特征数据是系统发生故障时的KPI指标数据,KPI指标包括由feature0、feature1 ...feature106共107个指标,标签数据为故障类别数据,共6个类别,用0、1、2、3、4、5分别表示6个故障

例如:故障1会引起feature1、feature5、feature15等指标异常,反过来可以通过feature1、feature5、feature15等指标异常诊断为系统发生故障1

4.2 要求

利用机器学习知识,在只利用训练集的情况下训练一个模型(决策树、神经网络等都可以),在测试集上进行测试,要求使用classification_report()函数,打印类似如下的报告表,要求训练集f1-score整体在0.9左右,验证集f1-score总体在0.85左右:

pic1

数据集:train_data,test_data

数据集下载链接:https://www.synx.tech/wp-content/uploads/2023/09/data.zip

4.3 提交

源代码,分类报告截图(类似上图),实验思路报告

5. 探讨题

[blame Mikivis]

难度等级: :star: :star: :star: :star: :star:

为什么chatgpt能达到如此之好的效果呢,它又有哪些不足呢?我们鼓励你去探索其背后的技术,并写一篇技术报告,记录你的调查学习过程,不强制要求字数,不管是读论文看视频还是看博客,都可以记录下来哦,加油捏


0 条评论

发表回复

Avatar placeholder

您的电子邮箱地址不会被公开。 必填项已用 * 标注