GitHub - lcatro/Machine-Learning-Note: 机器学习笔记
source link: https://github.com/lcatro/Machine-Learning-Note
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
Machine Learning Note
机器学习笔记,后续整理一些Python 库使用方法与代码
kNN k-邻近算法
优点:精度高,对异常值不敏感,无数据输入假定
缺点:计算复杂度高,空间复杂度高
适用数据范围:数值型和标称型
什么是数值型和标称型
标称型:标称型目标变量的结果只在有限目标集中取值
数值型:数值型目标变量则可以从无限的数值集合中取值
kNN 算法原理:w1 w2 w3 是不同分类的数据,当新的数据出现(Xu),需要对数据Xu 进行分类,方法如下:
1.计算Xu 到w1 w2 w3 的平均距离(使用勾股定理求出到各个分类的数据点的距离) 2.把Xu 到w1 w2 w3 的平均距离做对比,找到这三个分类中最短的距离,得到的结果就是kNN 分类结果
优点:计算复杂度不高,输出结果易于理解,对中间值的缺失不敏感,可以处理不相关特征数据
缺点:可能会产生过度匹配问题
适用数据类型:数值型和标称型
朴素贝叶斯
优点: 在数据较少的情况下仍然有效,可以处理多类别问题
缺点: 对于输入数据的准备方式较为敏感
适用数据类型: 标称型数据
机器学习算法之朴素贝叶斯(Naive Bayes)--第一篇
logics 回归
优点: 计算代价不高,易于理解和实现
缺点: 容易欠拟合,分类精度可能不高
适用数据类型: 数值型和标称型数据
SVM 支持向量机
优点:泛化(由具体的,个别的扩大为一般的,就是说:模型训练完后的新样本)错误率低,计算开销不大,结果易理解
缺点:对参数调节和核函数的选择敏感,原始分类器不加修改仅适合于处理二分类问题
适用数据类型:数值型和标称型数据
CNN(卷积神经网络),RNN(循环神经网络),DNN(深度神经网络)的内部网络结构有什么区别
对"小白学CNN以及Keras的速成"注解
文章最后有一段关于构建CNN 网络的代码:
from keras.layers import Conv2D,MaxPool2D,Dense,Flatten
from keras.models import Sequential
lenet=Sequential()
lenet.add(Conv2D(6,kernel_size=3,strides=1,padding='same',input_shape=(28, 28, 1)))
lenet.add(MaxPool2D(pool_size=2,strides=2))
lenet.add(Conv2D(16,kernel_size=5,strides=1,padding='valid'))
lenet.add(MaxPool2D(pool_size=2,strides=2))
lenet.add(Flatten())
lenet.add(Dense(120))
lenet.add(Dense(84))
lenet.add(Dense(10,activation='softmax'))
这个是LeNet CNN 结构,在应用神经网络实现代码时,可以不需要关注神经网络的具体细节,知道一些CNN 结构是怎么样搭建的就可以了.这段代码可以这样来理解:
下面这个例子用的是CS231n 结构,CS231n 长这样~
最后的代码实现只使用了一个(两次卷积+池化),没有像上面的图片里展示的那样使用三个(两次卷积+池化)
Python 库
scikit-learn 机器学习库 ,scikit-learn 机器学习库中文文档 ,如果无法使用Github 安装sk-learn ,请到Python 官方下载msi 安装文件scikit-learn 下载传送门
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK