diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 0000000..4b16f59 --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1,12 @@ +# These are supported funding model platforms + +github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: # Replace with a single Ko-fi username +tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ae945fa --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +.idea/ +venv/ diff --git a/AnomalyDetection/AnomalyDetection.py b/AnomalyDetection/AnomalyDetection.py index 642b452..d481dc2 100644 --- a/AnomalyDetection/AnomalyDetection.py +++ b/AnomalyDetection/AnomalyDetection.py @@ -1,6 +1,7 @@ #-*- coding: utf-8 -*- # Author: Bob # Date: 2016.12.22 +from __future__ import print_function import numpy as np from matplotlib import pyplot as plt from scipy import io as spio @@ -25,8 +26,8 @@ def anomalyDetection_example(): yval = data['yval'] # y=1代表异常 pval = multivariateGaussian(Xval, mu, sigma2) # 计算CV上的概率密度值 epsilon,F1 = selectThreshold(yval,pval) # 选择最优的epsilon临界值 - print (u'在CV上得到的最好的epsilon是:%e'%epsilon) - print (u'对应的F1Score值为:%f'%F1) + print(u'在CV上得到的最好的epsilon是:%e'%epsilon) + print(u'对应的F1Score值为:%f'%F1) outliers = np.where(p1D,nD-->kD](#2-2d-1dnd-kd) - * [3、主成分分析PCA与线性回归的区别](#3-主成分分析pca与线性回归的区别) - * [4、PCA降维过程](#4-pca降维过程) - * [5、数据恢复](#5-数据恢复) - * [6、主成分个数的选择(即要降的维度)](#6-主成分个数的选择即要降的维度) - * [7、使用建议](#7-使用建议) - * [8、运行结果](#8-运行结果) - * [9、使用scikit-learn库中的PCA实现降维](#9-使用scikit-learn库中的pca实现降维) - * [七、异常检测 Anomaly Detection](#七-异常检测-anomaly-detection) - * [1、高斯分布(正态分布)](#1-高斯分布正态分布) - * [2、异常检测算法](#2-异常检测算法) - * [3、评价的好坏,以及的选取](#3-评价的好坏以及的选取) - * [4、选择使用什么样的feature(单元高斯分布)](#4-选择使用什么样的feature单元高斯分布) - * [5、多元高斯分布](#5-多元高斯分布) - * [6、单元和多元高斯分布特点](#6-单元和多元高斯分布特点) - * [7、程序运行结果](#7-程序运行结果) + * [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) @@ -105,7 +104,7 @@ def computerCost(X,y,theta): - 假设函数`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)` + - 将`△x`代入泰勒展开式中:`f(x+△x)=f(x)-α*[f'(x)]²+o(△x)` - 可以看出,`α`是取得很小的正数,`[f'(x)]²`也是正数,所以可以得出:`f(x+△x)<=f(x)` - 所以沿着**负梯度**放下,函数在减小,多维情况一样。 - 实现代码 @@ -313,7 +312,6 @@ import numpy as np ``` # 归一化 scaler = StandardScaler() - scaler.fit(x_train) x_train = scaler.fit_transform(x_train) x_test = scaler.fit_transform(x_test) ```