1. Python 面向对象思想
[blame Mikivis]
先从 Python 语法开始吧!
难度等级: :star:
背景知识:选择一款自己觉得好用的编译器(vscode?pycharm?jupyter?其实能写python就行啦);学习基础的python语法与面向对象的思想。
1.1 背景——订单管理系统
你被要求设计一个简单的订单管理系统。这个系统应该能够跟踪商品和客户订单。每个订单都有一个或多个商品,每个商品都有名称、价格和库存量。
1.2 任务
- 定义一个
Product
类,该类应该包含以下属性和方法:name
: 商品名称price
: 商品价格stock
: 商品的库存量sell(n)
: 减少库存的方法,其中n
表示销售的数量。如果库存不足,应该抛出一个异常。add_stock(n)
: 增加库存的方法,其中n
表示新增的数量。
- 定义一个
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 扩展
- 为
Product
类增加一个description
属性,描述商品的细节。 - 为
Order
类增加一个date
属性,记录订单的日期。 - 为
Order
类添加一个cancel_order()
方法,该方法应取消订单并恢复商品的库存。 - 创建一个
Customer
类,包含name
,email
和orders
(一个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左右:
数据集: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 条评论