Install mysql8.0 By ‘yum’

环境:腾讯云 CentOS7

这里安装的是mysql8.0的版本。

1.获取mysql8.0(这里可能会特别慢):

wget https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm

rpm -Uvh mysql80-community-release-el7-1.noarch.rpm

yum install mysql-community-server

2.接着打开mysql:

systemctl start mysqld.service

3.查看mysql服务的状态:

systemctl status mysqld.service

4.到这里为止,不知道mysql的root密码,通过命令来查看:

grep ‘temporary passwrod’ /var/log/mysqld.log

5.没反应。换个方式:

vim /etc/my.cnf

在最后面添加:skip-grant-tables

保存退出。 继续阅读“Install mysql8.0 By ‘yum’”

Install Python3.6 By Compile Sources

环境:腾讯云CentOS 7

1.首先安装依赖:

yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel

2.接着获取python包:

wget https://www.python.org/ftp/python/3.6.6/Python-3.6.6.tgz

3.解压缩:

tar -zxvf Python-3.6.6.tgz

4.进入解压后的包:

cd Python-3.6.6

5.接着生成makefile并且将其安装在/usr/local下,执行文件放在/usr/local/bin下,资源文件放在/use/local/share下方,–enable-shared生成动态库:

./configure –prefix=/usr/local –enable-shared

这里有可能会出错:

出现末尾这么两行东西: 继续阅读“Install Python3.6 By Compile Sources”

py2app Tutorial

此教程描述的是将python项目打包成.app文件。即在Mac上使用的应用程序。

1.通过终端下载py2app: pip3.6 install py2app

2.到工程目录下找到自己的入口文件hello.py,键入命令:py2applet –make-setup hello.py。将生成setup.py。

3.修改setup.py。在DATA_FILES添加资源文件,比如DATA_FILES = [‘123.png’, ‘456.mp4’]等,以及自己写的python模块。在OPTIONS添加库,比如OPTIONS={‘includes’: [‘sip’, ‘PyQt5.QtWidgets’]}也可以添加图标等。

4.创建测试版本:在终端输入:python3.6 setup.py py2app -A

5.创建发行版本:在这之前最好将已生成的build和dist文件删除。最后,在终端输入:python3.6 setup.py py2app,生成的app在dist文件夹下。

ML-Support_Vector_Machine_Note

超平面的划分:在样本空间中,划分超平面可通过wx+b=0,其中w=(w1;w2…;wd)为法向量,决定了超平面的方向;b为位移项,决定了超平面与原点之间的距离。

样本空间中的点到超平面的距离:记划分超平面的法向量为w和位移为b,则样本空间中的任意点到超平面的距离可写为𝜸=(|wx+b|)/(||w||)

支持向量:距离超平面最近的几个训练样本点使wx+b>=+1 yi=+1, wx+b>=-1 yi=-1(即假设超平面(w,b)能将训练样本正确分类,对(xi,yi)D,若yi=+1,则有wx+b>0;若yi=-1,则有wx+b<0)的等号成立,则它们被称为“支持向量”,两个异类支持向量到超平面的距离之和为𝜸=2/||w||,则𝜸称为间隔

支持向量机基本型:为了找到“最大间隔”的划分超平面,也就是找到参数w和b,使得𝜸最大,即max 2/||w|| s.t. yi(wx+b)>=1, i=1,2…,m。最大化间隔仅需最大化||w||¹,等于最小化||w||²,则可重写为min (1/2)||w||² s.t. yi(wx+b)>=1, i=1,2…,m,这就是支持向量机的基本模型。

对偶问题:在对偶问题需满足KKT(Karush-Kuhn-Tucker)条件

支持向量机的一个重要性质在训练完成后,大部分的训练样本都不需要保留,最终模型仅与最终向量有关。

SMO(Sequential Minimal Optimization)对于对偶问题,可以使用通用的二次规划算法来求解;然而,该问题的规模正比于训练样本数,这会造成很大的开销。SMO算法可以避开这个问题。

SMO算法的思路先固定ai之外的所有参数,然后求ai上的极值。由于存在约束∑(aiyi)=0,若固定ai之外的其他变量,则ai可由其他变量导出。于是,SMO每次选择两个变量ai和aj,并固定其他参数。这样,在参数初始化后,SMO不断执行如下两个步骤直至收敛:1.选取一堆需更新的变量ai和aj2.固定ai和aj以外的参数,求解(maxᵢai-(1/2)𝘫(aiajyiyjxixj),其中i=1,2,…m, j=1,2…,ms.t ᵢaiyi = 0, ai>=0, i=1,2,…m)获得更新后的ai和aj

核函数:核函数可以解决非线形可分问题。

硬间隔:所有样本必须划分正确

软间隔:允许某些样本不满足划分规则。软间隔支持向量机。

支持向量回归(Support Vector Regression, SVR)构建一个宽度为2e的间隔带,若训练样本落入次间隔带,则认为是被预测正确的。

核方法:基于核函数的学习方法。通过核化将线性学习拓展为非线形学习。

ML-Neural_Network_Note

神经网络神经网络中最基本的成分是神经元模型。将许多个神经元模型连接起来便成了神经网络。

M-P神经元模型在此模型中,神经元接收到来自n个其他神经元传递过来的输入信号,这些输入信号通过带权重的连接进行传递,神经元接收到的总输入将与神经元的阈值进行比较,然后通过”激活函数”处理以产生神经元的输出。

激活函数-阶跃函数理想中的激活函数是阶跃函数,它将以输入值映射为输出值”0″和”1″,0表示神经元抑制(未激活),1表示神经元兴奋(激活)。阶跃函数具有不连续、不光滑的性质。分段函数sgn(x)有:sgn(x) = 1 (x>=0), sgn(x) = 0 (x<0)。

激活函数-Sigmoid函数Sigmoid函数将较大范围内变化的输入值挤压到(0,1)输出值范围内,因此也被称为”挤压函数”。Sigmoid(x) = 1/(1 + e⁻ˣ)。

感知机(Perceptron)由两层神经元组成。输入层接收外界输入信号后传递给输出层,输出层是M-P神经元,也称为”阈值逻辑单元(threshold logic unit)”。感知机能实现简单逻辑与、或、非运算。感知机的学习过程一定会收敛,即求得合适的权重,否则,感知机的学习过程将会发生振荡。

感知机学习规则对训练样例(x,y),若当前感知机的输出为Ŷ,则感知机权重将调整:wi <- wi + △wi,△wi = η(Y – Ŷ)xi,其中η∊(0, 1)称为学习率。若感知机对训练样例(x, y)预测正确,即Ŷ=Y,则感知机不调整权重,否则,根据错误程度进行调整权重。

隐含层(hidden layer)用于解决非线性可分问题,可在输入层和输出层之间加入隐含层,隐含层和输出层神经元都是拥有激活函数的功能神经元。

多层前馈神经网络(multi-layer feedforward neural)每层神经元与下一层神经元全互连,神经元之间不存在同层连接,也不存在跨层连接。其中输入层神经元接收外界输入,隐含层与输出神经元对信号进行加工,最终结果由输出层神经元输出。即,输入层神经元只是接收输入,不进行函数处理,隐含层和输出层包含功能神经元。

神经网络学习过程:根据训练数据来调整神经元之间的”连接权(connection weight)”以及每个功能神经元的阈值。即,神经网络将”学”带的东西蕴含在连接权和阈值中。 继续阅读“ML-Neural_Network_Note”