「ML」 机器学习中的常见误区
一、 常见误区
想当然地使用默认的损失函数
一般情况下使用均方误差效果还行;但在现实应用中,需根据业务需求定制;
拿诈骗检测来说;为了达到业务目标,我们需按照与欺诈相关的美元金额的比例来惩罚假阴性以减少诈骗带来的损失;
效果 OK 与最好是两个概念;通用的损失函数,往往是 OK;
如何定制啊
一个算法用到底
一个模型用起来似乎很熟悉、顺手,并不代表就好用,且往往很难达到最佳性能;
要让数据来选择模型——处理完数据之后,把它放到不同的模型里看看结果如何,而不是想当然地主观挑选一个;这样你将能够很好地理解什么模型更适用;
忽略异常值
异常值取舍要视具体情况而定,并不是一味地忽略;
以污染预测为例,如果观察到空气污染出现大量异常峰值,那...
「竞赛」 津南数字制造算法挑战赛【赛场一】——异烟酸生产
津南数字制造算法挑战赛,着眼于智能制造;
竞赛主页:https://tianchi.aliyun.com/competition/entrance/231695/introduction
特征工程
介绍比赛的部分逻辑很乱,还得整理
一、 介绍
烟酰胺生产过程包含水解脱色、结晶甩滤等过程;每个步骤会受到温度、时间、压强等各方面因素的影响,造成异烟酸收率的不稳定;以往都是人工根据经验调整和优化生产过程中的参数,费时费力;
赛场一:原料企业工艺优化
赛场一以原料企业工艺优化为课题,要求选手以异烟酸生产过程中的各参数,设计精确智能的优秀算法,提升异烟酸的收率;
初赛:给定生产过程的各参数,输出最终异烟酸的收率;
复赛:给出生产过程的最优参数组合及最优参数情况下的收率;
赛场二:...
「Python」 eyeD3
官方文档 http://eyed3.nicfit.net/
功能:用来处理 MP3 文件;
一、 安装
End
附录
参考资料
lyrichu. 介绍几个python的音频处理库[EB/OL]. https://www.cnblogs.com/lyrichu/p/6848732.html. -/2019-01-11
「Python」 pydub
官方文档 http://pydub.com
github:https://github.com/jiaaro/pydub/
功能:可一打开任何 ffmepg 支持的文件类型;可对音频做各种处理;
一、 安装
pip install pydub
依赖 ffmpeg 或 libav;
二、 功能
打开音频文件
不仅能解析音频文件,还能直接从视频文件中解析出音频;
End
附录
A 示例
1. 打开音频文件
from pydub import AudioSegment
song = AudioSegment.from_wav("never_gonna_give_you_up.wav")
song = AudioSegment.from_mp3("never_gonna_giv...
「Python」 PyAudio
官方文档 https://people.csail.mit.edu/hubert/pyaudio/docs/
一、 安装
使用 pyaudio + numpy + pylab 录音并显示:打开电脑的麦克风,然后接受音频输入,再以图像的形式展示出来;
可轻松录制与播放音频;
End
附录
A 示例
1. 录音并显示
# -*- coding: utf-8 -*-
import pyaudio
import numpy as np
import pylab
import time
RATE = 44100
CHUNK = int(RATE/20) # RATE/number of updates per second
def sound_plot(stream):
...
「Python」 第三方库汇总
功能
音频处理
eyeD3
pydub
PyAudio
End
附录
A 参考资料
lyrichu. 介绍几个python的音频处理库[EB/OL]. https://www.cnblogs.com/lyrichu/p/6848732.html. -/2019-01-11.
清屏网. Python数据工具箱:音频处理库[EB/OL]. http://www.qingpingshan.com/jb/python/325303.html. 2017-09-11/2019-01-11.
面向对象程序设计概览
一、 介绍
附录
A 参考书
《Python3 面向对象编程》
Dusty Phillips 著, 孙雨生 译. Python3 面向对象编程[M]. 北京:电子工业出版社, 2018.
类的基本使用;
哪些设计模式在 python 中有所不同及其原因;
python3 并发技术及其陷阱;
《深度探索 C++ 对象模型》
Stanley B. Lippman 著, 侯捷 译. 深度探索 C++ 对象模型[M]. 北京:电子工业出版社, 2012.
《面向对象思考过程》
Matt Weisfeld 著, 黄博文 译. 面向对象思考过程[M]. 北京:机械工业出版社, 2016.
...
「Python」 类
前导知识:(懂程序设计基础,面向对象程序设计更好)
类(class)封装了一组相关数据,并提供一系列方法对其维护;
类之间的关系有继承(inhertiance,is-a)和组合(composition,has-a);
类和模块的区别:类可以生成多个实例;类可被继承和扩展;类实例的生命周期可控;类支持运算符,可按需重载;
没有意义的比较;也就是能帮助小白理解什么是类吧;不过如果是面试官问出这种问题,一时间,可能真的要卡住了;
建议将类与业务逻辑分离;业务逻辑与函数的概念更为吻合——过程化、无状态及用上下文传递数据;而类是以数据为中心,注重遗传,满足多实例需求;
一、 定义类
创建:使用 class 关键字定义类;
名字空间:类都有自己的名字空间;子类本身并不包括父类中的成...
「Python」 数据类型
开发时优先选择内置类型及标准库:
性能好:编译器和解释器对内置类型有特殊优化;
跨平台兼容性:使用第三方代码会提高程序复杂度,增加潜在错误风险,更不利于后续升级和维护;
内置类型:
名称
分类
可变类型
名称
分类
可变类型
int
number
No
str
sequence
No
float
number
No
bytes
sequence
No
...
「Python」 概览
一、 介绍
二、 Python 基础
三、 Python 标准库
四、 Python 第三方库
附录
A 推荐书籍
1.《Python3 标准库》
Doug Hellmann 著, 苏金国, et al 译. Python3 标准库[M]. 北京:机械工业出版社, 2018.
2.《python3 学习笔记》
雨痕. python3 学习笔记[M]. 北京:电子工业出版社, 2018.
3.《Python 科学计算》
张若愚. Python 科学计算[M]. 北京:清华大学出版社, 2018.
B 推荐资料
汇集了众多python 资源 https://yiyibooks.cn/
内容质量有待提高;
在线手册中心...
「设计模式」 模板方法
定义:定义一个操作中的算法的骨架,而将步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义算法的某些特定步骤。【抽象类】——基于继承的代码复用技术
目的:允许定义不同的子步骤,同时维护基本过程的一致性
实现:
抽象类(AbstractClass):实现了模板方法,定义了算法的骨架。
具体类(ConcreteClass):实现抽象类中的抽象方法,已完成完整的算法。
优点:
把不变的行为搬移到超类,去除了子类中的重复代码。
子类实现算法的某些细节,有助于算法的扩展。
符合“开放-封闭原则”。
缺点:
每个不同的实现都需要定义一个子类,这会导致类的个数的增加,设计更加抽象。
适用场景:
在某些类的算法中,用了相同的方法,造成代码的重复。
控制子类扩展...
「设计模式」 策略模式
replace
FIFO_RepIaceAIgorithm
ReplaceO
ReplaceAIgorithm
«abstract» ReplaceO
LRU_RepIaceAIgorithm
ReplaceO
Cache
algorithm
CacheO
—Cache()
ReplaceO
Random_RepIaceAIgorithm
ReplaceO
.h文件
//抽象接口 接口/抽象类
class ReplaceAlgorithm
{
public:
virtual void Replace() = 0;
};
//三种具体的替换算法 实现类
class LRU_ReplaceAlgorithm : public ReplaceAlgorithm
{
pu...
「设计模式」 状态模式
背景:类的行为是随着它的状态改变的而改变
问题:分支语句实现的程序可维护性差、重用性差;代码逻辑复杂
定义:允许对象在其内部状态改变时改变它的行为。
使用环境:
一个对象的行为取决于它的状态, 并且它必须在运行时刻根据状态改变它的行为。
一个操作中含有庞大的多分支的条件语句,且这些分支依赖于该对象的状态。
角色:上下文、状态
实现:环境类、抽象状态类、状态类
缺点:
类爆炸;
违反了开闭原则;what why 鱼和熊掌不可兼得
new - delete 耗时,且可能造成内存碎片(参考);对象内存计算
状态过于分散,逻辑不够清晰;优点即缺点
结构和实现略复杂;
优点:
解决了多层分支语句;
分离状态实现,状态扩展性好;
特点:状态转移的逻辑不在分支语句中...
「设计模式」 单例模式
单例模式 和 MONOSTATE
单例模式——标准版
class CSingleton
{
private:
CSingleton() //构造函数是私有的
{ }
static CSingleton *m_pInstance;
public:
static CSingleton * GetInstance()
{
if(m_pInstance == NULL) //判断是否第一次调用
m_pInstance = new CSingleton();
return m_pInstance;
}
};
单例模式——线程安全版
CSingleton* GetInstance()
{
lock();
if (in...
「设计模式」 观察者模式
定义:定义了对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都
得到通知并被自动更新
实现:推模式,拉模式
特点:
此处的继承:就是面向过程(实现)编程变为面向接口编程;
由组合变成了聚合;由组合/聚合变成了依赖
(抽象类)兼容新类型;
(观察者与主题分离)可以独立地复用观察者和主题;
可结合中介者模式;
基类
//观察者
class Observer
{
public:
Observer() {}
virtual ~Observer() {}
virtual void Update() {}
};
//博客
class Blog
{
public:
Blog() {}
virtual ~Blog() {}...
「设计模式」 工厂方法
一、 UML 图
1. 简单工厂
C++ 示例
2. 工厂方法
C++ 示例
二、 Q & A
1. 简单工厂和工厂方法的区别
2. 简单工厂模式和模板方法的区别
End
附录
A 代码示例
1. 简单工厂 C++ 代码示例
## 代码
enum CTYPE {COREA, COREB};
class SingleCore
{
public:
virtual void Show() = 0;
};
//单核A
class SingleCoreA: public SingleCore
{
public:
void Show() { cout<<"SingleCo...


「设计模式」 装饰者模式
背景:不必改变原类文件和使用继承的情况下,动态的扩展一个对象的的功能。
方案:利用子对象,委派
定义:
角色:
油漆工(decorator)是用来刷油漆的
被修饰者decoratee是被刷油漆的对象
实现:“实现被装饰者类—定义被装饰者对象—-使用被装饰者对象产生装饰者对象”(有多种方式)
案例:咖啡
特定场景下才用;
说明:
装饰者与被装饰者具有相同的类型
可以用多个装饰者装饰一个对象
由于装饰者与被装饰者具有相同的类型,我们可以用装饰后的对象代替原来的对象。
装饰者在委派它装饰的对象作某种处理时,可以添加上自己的行为(功能扩展)(在委派之前或/和之后)。
对象可以在任何时候被装饰,因此我们能在运行时动态的装饰对象。
共计 516 篇文章,26 页。