机器学习算法

  • E1_231766
    了解作者
  • 34.1MB
    文件大小
  • gz
    文件格式
  • 0
    收藏次数
  • VIP专享
    资源类型
  • 0
    下载次数
  • 2022-06-10 12:49
    上传日期
机器学习算法python实现,,,, 机器学习算法。。。。。
70.MachineLearning_Python__lawlite19.tar.gz
  • 70.MachineLearning_Python__lawlite19
  • AnomalyDetection
  • data2.mat
    91.3KB
  • AnomalyDetection.py
    3.9KB
  • data1.mat
    9.3KB
  • images
  • SVM_05.png
    14.5KB
  • PCA_01.png
    20.8KB
  • LogisticRegression_09.png
    85KB
  • AnomalyDetection_02.png
    18.2KB
  • LogisticRegression_08.png
    153KB
  • PCA_03.png
    15.7KB
  • LogisticRegression_07.png
    10.8KB
  • K-Means_06.png
    156.7KB
  • LogisticRegression_04.png
    38.6KB
  • NeuralNetwork_01.png
    24.3KB
  • NeuralNetwork_02.png
    5.7KB
  • AnomalyDetection_01.png
    7.3KB
  • AnomalyDetection_09.png
    59.7KB
  • LogisticRegression_11.png
    10.4KB
  • SVM_07.png
    19KB
  • LogisticRegression_12.png
    32.4KB
  • NeuralNetwork_07.png
    110KB
  • AnomalyDetection_06.png
    4.4KB
  • SVM_01.png
    10.9KB
  • NeuralNetwork_06.png
    83.3KB
  • AnomalyDetection_07.png
    6.3KB
  • NeuralNetwork_04.png
    36.5KB
  • K-Means_04.png
    15.8KB
  • LogisticRegression_06.png
    45.1KB
  • AnomalyDetection_03.png
    18.4KB
  • LogisticRegression_01.png
    17.9KB
  • AnomalyDetection_04.png
    9.4KB
  • SVM_03.png
    13.7KB
  • K-Means_02.png
    23.3KB
  • K-Means_01.png
    21.3KB
  • PCA_05.png
    29.7KB
  • SVM_04.png
    5.9KB
  • K-Means_07.png
    2.2KB
  • NeuralNetwork_05.png
    42.8KB
  • K-Means_05.png
    29.9KB
  • AnomalyDetection_08.png
    23.5KB
  • LogisticRegression_13.png
    5.4KB
  • NeuralNetwork_09.png
    6.7KB
  • PCA_07.png
    120.7KB
  • LogisticRegression_03.jpg
    2.6MB
  • NeuralNetwork_08.png
    14.5KB
  • PCA_04.png
    15.9KB
  • SVM_08.png
    20.6KB
  • PCA_06.png
    163.6KB
  • SVM_09.png
    28.4KB
  • PCA_02.png
    7KB
  • AnomalyDetection_10.png
    23.2KB
  • LogisticRegression_05.png
    7.2KB
  • SVM_02.png
    12.4KB
  • SVM_06.png
    7.2KB
  • PCA_08.png
    266.4KB
  • NeuralNetwork_03.jpg
    4.6MB
  • AnomalyDetection_05.png
    4.3KB
  • LinearRegression_01.png
    20.7KB
  • LogisticRegression_02.png
    15.6KB
  • K-Means_03.png
    27.1KB
  • SVM_10.png
    100.5KB
  • LogisticRegression_10.png
    17.5KB
  • LogisticRegression
  • data_digits.mat
    7.2MB
  • class_y.csv
    147.1KB
  • LogisticRegression_scikit-learn.py
    1.4KB
  • LogisticRegression.py
    5.3KB
  • data1.txt
    3.8KB
  • LogisticRegression_OneVsAll.py
    5KB
  • data2.txt
    2.3KB
  • data1.npy
    2.4KB
  • LogisticRegression_OneVsAll_scikit-learn.py
    833B
  • predict.csv
    249KB
  • readme.md
    84.9KB
  • PCA
  • PCA_scikit-learn.py
    3.2KB
  • data_faces.mat
    10.5MB
  • data.mat
    995B
  • PCA.py
    4.5KB
  • formula
  • LogisticRegression_01.wmf
    21.5KB
  • LinearRegression_01.wmf
    10.5KB
  • NeuralNetwork.wmf
    34KB
  • SVM.wmf
    41.7KB
  • K-Means.wmf
    7.5KB
  • PCA.wmf
    27.6KB
  • AnomalyDetection.wmf
    19.6KB
  • K-Means
  • bird.png
    32.3KB
  • bird.mat
    44.5KB
  • data.mat
    4.7KB
  • K-Menas.py
    5.2KB
  • K-Means_scikit-learn.py
    568B
  • LICENSE
    1.1KB
  • SVM
  • data2.mat
    7.4KB
  • SVM_scikit-learn.py
    2.2KB
  • data.txt
    2.3KB
内容介绍
机器学习算法Python实现 ========= [![MIT license](https://img.shields.io/dub/l/vibe-d.svg)](https://github.com/lawlite19/MachineLearning_Python/blob/master/LICENSE) ## 目录 * [机器学习算法Python实现](#机器学习算法python实现) * [一、线性回归](#一线性回归) * [1、代价函数](#1代价函数) * [2、梯度下降算法](#2梯度下降算法) * [3、均值归一化](#3均值归一化) * [4、最终运行结果](#4最终运行结果) * [5、使用scikit-learn库中的线性模型实现](#5使用scikit-learn库中的线性模型实现) * [二、逻辑回归](#二逻辑回归) * [1、代价函数](#1代价函数) * [2、梯度](#2梯度) * [3、正则化](#3正则化) * [4、S型函数(即)](#4s型函数即) * [5、映射为多项式](#5映射为多项式) * [6、使用的优化方法](#6使用scipy的优化方法) * [7、运行结果](#7运行结果) * [8、使用scikit-learn库中的逻辑回归模型实现](#8使用scikit-learn库中的逻辑回归模型实现) * [逻辑回归_手写数字识别_OneVsAll](#逻辑回归_手写数字识别_onevsall) * [1、随机显示100个数字](#1随机显示100个数字) * [2、OneVsAll](#2onevsall) * [3、手写数字识别](#3手写数字识别) * [4、预测](#4预测) * [5、运行结果](#5运行结果) * [6、使用scikit-learn库中的逻辑回归模型实现](#6使用scikit-learn库中的逻辑回归模型实现) * [三、BP神经网络](#三bp神经网络) * [1、神经网络model](#1神经网络model) * [2、代价函数](#2代价函数) * [3、正则化](#3正则化) * [4、反向传播BP](#4反向传播bp) * [5、BP可以求梯度的原因](#5bp可以求梯度的原因) * [6、梯度检查](#6梯度检查) * [7、权重的随机初始化](#7权重的随机初始化) * [8、预测](#8预测) * [9、输出结果](#9输出结果) * [四、SVM支持向量机](#四svm支持向量机) * [1、代价函数](#1代价函数) * [2、Large Margin](#2large-margin) * [3、SVM Kernel(核函数)](#3svm-kernel核函数) * [4、使用中的模型代码](#4使用scikit-learn中的svm模型代码) * [5、运行结果](#5运行结果) * [五、K-Means聚类算法](#五k-means聚类算法) * [1、聚类过程](#1聚类过程) * [2、目标函数](#2目标函数) * [3、聚类中心的选择](#3聚类中心的选择) * [4、聚类个数K的选择](#4聚类个数k的选择) * [5、应用——图片压缩](#5应用图片压缩) * [6、使用scikit-learn库中的线性模型实现聚类](#6使用scikit-learn库中的线性模型实现聚类) * [7、运行结果](#7运行结果) * [六、PCA主成分分析(降维)](#六pca主成分分析降维) * [1、用处](#1用处) * [2、2D-->1D,nD-->kD](#22d--1dnd--kd) * [3、主成分分析PCA与线性回归的区别](#3主成分分析pca与线性回归的区别) * [4、PCA降维过程](#4pca降维过程) * [5、数据恢复](#5数据恢复) * [6、主成分个数的选择(即要降的维度)](#6主成分个数的选择即要降的维度) * [7、使用建议](#7使用建议) * [8、运行结果](#8运行结果) * [9、使用scikit-learn库中的PCA实现降维](#9使用scikit-learn库中的pca实现降维) * [七、异常检测 Anomaly Detection](#七异常检测-anomaly-detection) * [1、高斯分布(正态分布)](#1高斯分布正态分布gaussian-distribution) * [2、异常检测算法](#2异常检测算法) * [3、评价的好坏,以及的选取](#3评价px的好坏以及ε的选取) * [4、选择使用什么样的feature(单元高斯分布)](#4选择使用什么样的feature单元高斯分布) * [5、多元高斯分布](#5多元高斯分布) * [6、单元和多元高斯分布特点](#6单元和多元高斯分布特点) * [7、程序运行结果](#7程序运行结果) ## 一、[线性回归](/LinearRegression) - [全部代码](/LinearRegression/LinearRegression.py) ### 1、代价函数 - ![J(\theta ) = \frac{1}{{2{\text{m}}}}\sum\limits_{i = 1}^m {{{({h_\theta }({x^{(i)}}) - {y^{(i)}})}^2}} ](http://chart.apis.google.com/chart?cht=tx&chs=1x0&chf=bg,s,FFFFFF00&chco=000000&chl=J%28%5Ctheta%20%29%20%3D%20%5Cfrac%7B1%7D%7B%7B2%7B%5Ctext%7Bm%7D%7D%7D%7D%5Csum%5Climits_%7Bi%20%3D%201%7D%5Em%20%7B%7B%7B%28%7Bh_%5Ctheta%20%7D%28%7Bx%5E%7B%28i%29%7D%7D%29%20-%20%7By%5E%7B%28i%29%7D%7D%29%7D%5E2%7D%7D%20) - 其中: ![{h_\theta }(x) = {\theta _0} + {\theta _1}{x_1} + {\theta _2}{x_2} + ...](http://chart.apis.google.com/chart?cht=tx&chs=1x0&chf=bg,s,FFFFFF00&chco=000000&chl=%7Bh_%5Ctheta%20%7D%28x%29%20%3D%20%7B%5Ctheta%20_0%7D%20%2B%20%7B%5Ctheta%20_1%7D%7Bx_1%7D%20%2B%20%7B%5Ctheta%20_2%7D%7Bx_2%7D%20%2B%20...) - 下面就是要求出theta,使代价最小,即代表我们拟合出来的方程距离真实值最近 - 共有m条数据,其中![{{{({h_\theta }({x^{(i)}}) - {y^{(i)}})}^2}}](http://chart.apis.google.com/chart?cht=tx&chs=1x0&chf=bg,s,FFFFFF00&chco=000000&chl=%7B%7B%7B%28%7Bh_%5Ctheta%20%7D%28%7Bx%5E%7B%28i%29%7D%7D%29%20-%20%7By%5E%7B%28i%29%7D%7D%29%7D%5E2%7D%7D)代表我们要拟合出来的方程到真实值距离的平方,平方的原因是因为可能有负值,正负可能会抵消 - 前面有系数`2`的原因是下面求梯度是对每个变量求偏导,`2`可以消去 - 实现代码: ``` # 计算代价函数 def computerCost(X,y,theta): m = len(y) J = 0 J = (np.transpose(X*theta-y))*(X*theta-y)/(2*m) #计算代价J return J ``` - 注意这里的X是真实数据前加了一列1,因为有theta(0) ### 2、梯度下降算法 - 代价函数对![{{\theta _j}}](http://chart.apis.google.com/chart?cht=tx&chs=1x0&chf=bg,s,FFFFFF00&chco=000000&chl=%7B%7B%5Ctheta%20_j%7D%7D)求偏导得到: ![\frac{{\partial J(\theta )}}{{\partial {\theta _j}}} = \frac{1}{m}\sum\limits_{i = 1}^m {[({h_\theta }({x^{(i)}}) - {y^{(i)}})x_j^{(i)}]} ](http://chart.apis.google.com/chart?cht=tx&chs=1x0&chf=bg,s,FFFFFF00&chco=000000&chl=%5Cfrac%7B%7B%5Cpartial%20J%28%5Ctheta%20%29%7D%7D%7B%7B%5Cpartial%20%7B%5Ctheta%20_j%7D%7D%7D%20%3D%20%5Cfrac%7B1%7D%7Bm%7D%5Csum%5Climits_%7Bi%20%3D%201%7D%5Em%20%7B%5B%28%7Bh_%5Ctheta%20%7D%28%7Bx%5E%7B%28i%29%7D%7D%29%20-%20%7By%5E%7B%28i%29%7D%7D%29x_j%5E%7B%28i%29%7D%5D%7D%20) - 所以对theta的更新可以写为: ![{\theta _j} = {\theta _j} - \alpha \frac{1}{m}\sum\limits_{i = 1}^m {[({h_\theta }({x^{(i)}}) - {y^{(i)}})x_j^{(i)}]} ](http://chart.apis.google.com/chart?cht=tx&chs=1x0&chf=bg,s,FFFFFF00&chco=000000&chl=%7B%5Ctheta%20_j%7D%20%3D%20%7B%5Ctheta%20_j%7D%20-%20%5Calpha%20%5Cfrac%7B1%7D%7Bm%7D%5Csum%5Climits_%7Bi%20%3D%201%7D%5Em%20%7B%5B%28%7Bh_%5Ctheta%20%7D%28%7Bx%5E%7B%28i%29%7D%7D%29%20-%20%7By%5E%7B%28i%29%7D%7D%29x_j%5E%7B%28i%29%7D%5D%7D%20) - 其中![\alpha ](http://chart.apis.google.com/chart?cht=tx&chs=1x0&chf=bg,s,FFFFFF00&chco=000000&chl=%5Calpha%20)为学习速率,控制梯度下降的速度,一般取**0.01,0.03,0.1,0.3.....** - 为什么梯度下降可以逐步减小代价函数 - 假设函数`f(x)` - 泰勒展开:`f(x+△x)=f(x)+f'(x)*△x+o(△x)` - 令:`△x=-α*f'(x)` ,即负梯度方向乘以一个很小的步长`α` - 将`△x`代入泰勒展开式中:`f(x+△x)=f(x)-α*[f'(x)]²+o(△x)` - 可以看出,`α`是取得很小的正数,`[f'(x)]²`也是正数,所以可以得出:`f(x+△x)<=f(x)` - 所以沿着**负梯度**放下,函数在减小,多维情况一样。 - 实现代码 ``` # 梯度下降算法 def gradientDescent(X,y,theta,alpha,num_iters): m = len(y) n = len(theta) temp = np.matrix(np.zeros((n,num_iters))) # 暂存每次迭代计算的theta,转化为矩阵形式 J_history = np.zeros((num_iters,1)) #记录每次迭代计算的代价值 for i in range(num_iters): # 遍历迭代次数 h = np.dot
评论
    相关推荐
    • NearestNeighbours:机器学习算法
      机器学习算法 输入包含两个文件。 第一个文件包含交叉验证信息,第二个文件包含数据。 第一个档案 每行中的数字用单个空格分隔。 第一个数字是k折交叉验证方案中使用的k折的k。 第二个数字是m,即示例数。 第三个...
    • 机器学习算法SVM
      算法简单的实现了SVM算法的基本原理,利于读者初步理解 学习SVM算法
    • 基础机器学习算法
      机器学习算法应用套路:数据处理(采集+去噪),模型训练(特征+模型),模型评估(MSE/F1Score/AUC)、模型应用
    • 机器学习算法之PCA
      机器学习算法,PCA算法,故障检测算法。可运行。机器学习算法,PCA算法,故障检测算法。可运行
    • 机器学习算法
      整合了聚类,分类,最优化,最短距离,蚁群算法等其它经典算法。完整的python处理程序。
    • 机器学习算法基础
      30个小时知识无盲区课程,覆盖十多个行业应用。
    • 机器学习算法统一
      机器学习算法统一
    • 机器学习算法工具箱
      机器学习算法工具箱,包括各种机器学习的算法(mstlab).
    • 机器学习算法
      用python3完成线性回归、逻辑回归的小练习,用到sklearn库中linear_model里面的函数
    • SIM800C_MQTT.rar
      使用SIM800C模块,使用MQTT协议,连接中国移动onenet平台,能实现数据的订阅、发布、存储等