![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
tensorflow
s_daqing
这个作者很懒,什么都没留下…
展开
-
十七、Apriori算法原理
支持度、置信度和提升度支持度:是个百分比,指的是某个商品组合出现的次数与总次数之间的比例。支持度越高,代表这个组合出现的频率越大置信度:是个条件概念,指的是当你购买了商品A,会有多大的概率购买商品B提升度:商品A的出现,对商品B的出现概率提升的程度,商品A的出现,对商品B的出现概率提升的程度提升度(A→B)=置信度(A→B)/支持度(B)提升度(A→B)>1:代表有提升;提升度(A→B)=1:代表有没有提升,也没有下降;提升度(A→B)<1:代表有下降。Apriori算法原理原创 2021-09-07 23:07:51 · 1426 阅读 · 1 评论 -
十六、强化学习-Reinforcement Learning
强化学习(Reinforcement Learning):机器学习的一个分支:监督学习、无监督学习、强化学习强化学习的思路和人比较类似,是在实践中学习比如学习走路,如果摔倒了,那么我们大脑后面会给一个负面的奖励值 => 这个走路姿势不好;如果后面正常走了一步,那么大脑会给一个正面的奖励值 => 这是一个好的走路姿势与监督学习的区别,没有监督学习已经准备好的训练数据输出值,强化学习只有奖励值,但是这个奖励值和监督学习的输出值不一样,它不是事先给出的,而是延后给出的(比如走路摔倒)与非监原创 2021-08-22 18:46:44 · 399 阅读 · 0 评论 -
GCN-Graph Convolutional Networks
背景CNN:图像识别的对象是图像,二维的结构 => 使用CNN模型提取图片特征CNN处理的图像或者视频中像素点(pixel)是排列成成很整齐的矩阵CNN的核心在于它的kernel,也就是一个个小窗口,在图片上平移,通过卷积的方式来提取特征关键在于图片结构上的平移不变性,即一个小窗口无论移动到图片的哪一个位置,其内部的结构都是一模一样的,因此CNN可以实现参数共享CNN一般作用于欧式空间,无法作用于非欧式空间,具有以下几个特点:权重共享:同一个卷积核可以作用于不同的位置局部性:欧原创 2021-08-11 22:29:25 · 819 阅读 · 0 评论 -
十五、最短路径问题:Dijkstra算法和floyd算法
一、Dijkstra1、算法原理:指定起点s,引进两个集合S和U。S:是记录已求出最短路径的顶点(以及相应的最短路径长度)U:记录还未求出最短路径的顶点(以及该顶点到起点s的距离)。Step1,S中只有起点s,从U中找出路径最短的顶点,将其加入到S中Step2,更新U中的顶点和顶点对应的路径重复Step1和Step2 直到遍历完所有顶点重复Step1,即更新S:从U中找出路径最短的顶点,加入到S中;重复Step2,即更新U中的顶点和顶点对应的路径比如我们想要计算从D到其他城市的最短距原创 2021-07-30 21:12:28 · 242 阅读 · 1 评论 -
十四、PageRank工具NetworkX的使用
igraph:处理复杂网络问题,提供Python, R, C语言接口性能强大,效率比NetworkX高NetworkX:基于python的复杂网络库对于Python使用者友好NetworkX的简单使用# 使用networkX计算节点的pagerankimport networkx as nximport matplotlib.pyplot as plt# 创建有向图G = nx.DiGraph() # 设置有向图的边集合edges = [("A", "B"),..原创 2021-07-26 22:34:03 · 1873 阅读 · 0 评论 -
十三、推荐系统工具
原创 2021-07-24 10:31:43 · 98 阅读 · 0 评论 -
Windows系统pyspark
1、JDK(本文中使用JDK8)下载:oracle官网https://www.oracle.com/cn/java/technologies/javase/javase-jdk8-downloads.html注意:需要有账号才能下载,注册很麻烦,有如下网站可以在里面下载也可以使用里面的共享账号http://www.codebaoku.com/jdk/jdk-oracle-account.html下载完成后,进行安装:安装完成后,配置Java的三个系统环境变量:JAVA_HOME: C:\Pr原创 2021-07-19 23:43:40 · 193 阅读 · 0 评论 -
矩阵分解ALS-交替最小二乘法
ALS(alternating least squares)ALS是交替最小二乘的简称。在机器学习中,ALS特指使用交替最小二乘求解的一个协同推荐算法。如:将用户(user)对商品(item)的评分矩阵分解成2个矩阵:把原来的矩阵拆分成:如何从评分矩阵中分解出User矩阵和Item矩阵,只有左侧的评分矩阵R是已知的User矩阵和Item矩阵是未知学习出User矩阵和Item矩阵,使得User矩阵*Item矩阵与评分矩阵中已知的评分差异最小 => 最优化问题我们最终的目的是使求得的原创 2021-07-19 22:42:54 · 3091 阅读 · 5 评论 -
CatBoost算法模型
CatBoost = Catgorical + Boost高效的处理分类特征(categorical features),首先对分类特征做统计,计算某个分类特征(category)出现的频率,然后加上超参数,生成新的数值型特征(numerical features)同时使用组合类别特征,丰富了特征维度采用的基模型是对称决策树,算法的参数少、支持分类变量通过可以防止过拟合CatBoost对于分类特征多的数据,可以高效的处理,过拟合程度小,效果好...原创 2021-07-04 11:39:48 · 1104 阅读 · 2 评论 -
LightGBM模型
LightGBM与XGBoost对比:模型精度:两个模型相当训练速度:LightGBM训练速度更快 => 1/10内存消耗:LightGBM占用内存更小 => 1/6特征缺失值:两个模型都可以自动处理特征缺失值分类特征:XGBoost不支持类别特征,需要对其进行OneHot编码,而LightGBM支持分类特征XGBoost模型的复杂度:模型复杂度 = 树的棵数 X 每棵树的叶子数量 X 每片叶子生成复杂度每片叶子生成复杂度 = 特征数量 X 候选分裂点数量 X 样本的数量原创 2021-07-03 11:42:14 · 1038 阅读 · 1 评论 -
XGBoost算法模型
XGBoost:目标函数=损失函数(拟合数据) + 正则化项(惩罚复杂模型)误差函数尽量拟合训练数据,正则化项鼓励简单的模型作用:用于控制树的复杂度,防止过拟合,使得模型更简化,也使得最终的模型的预测结果更稳定目标函数:对目标函数改进,进行二阶泰勒展开分别定义gi和和hi为一阶导数和二阶导数带入目标函数得:继续推导令Gj和Hj分别表示每个叶子节点的一阶梯度的和,与二阶梯度的和,如下目标函数改写为:我们希望这个值越小越好,那对w求偏导令偏导等于0:求解得:具体原创 2021-07-02 22:54:58 · 1069 阅读 · 2 评论 -
十二、集成学习
三种集成学习方式:Bagging把数据集通过有放回的抽样方式,划分为多个数据集,分别训练多个模型。针对分类问题,按照少数服从多数原则进行投票,针对回归问题,求多个测试结果的平均值Stacking通常是不同的模型,而且每个分类都用了全部训练数据,得到预测结果y1, y2, …, yk,然后再训练一个分类器 Meta Classifier,将这些预测结果作为输入,得到最终的预测结果Boosting与Bagging一样,使用的相同的弱学习器,不过是以自适应的方法顺序地学习这些弱学习器,即每个新学习器都原创 2021-07-02 21:58:15 · 93 阅读 · 3 评论 -
SVM模型实现离职分类
数据集到kagle官网下载:https://www.kaggle.com/SVM优点:可以解决高维问题,即大型特征空间;能够处理非线性特征的相互作用;需要先对数据进行归一化,因为计算是基于距离的模型,所以SVM和LR都需要对数据进行归一化处理SVM缺点:当样本很多时,效率并不是很高;对非线性问题没有通用解决方案,可能会很难找到合适核函数对缺失数据敏感;SVM核的选择是有技巧的,样本数量<特征数,线性核,大于特征数使用非线性核import pandas as pdfrom原创 2021-07-02 21:27:56 · 162 阅读 · 0 评论 -
LR模型实现离职分类
数据集到kagle官网下载:https://www.kaggle.com/二分类import pandas as pdfrom sklearn.feature_extraction import DictVectorizerfrom sklearn.preprocessing import LabelEncoderfrom sklearn.linear_model import LogisticRegressionfrom sklearn.model_selection import train原创 2021-07-02 20:39:40 · 105 阅读 · 0 评论 -
十三、机器学习四大神器之XGBoost、LightGBM、Catboost和NGBoost
**前言:**XGBoost、LightGBM 和 Catboost 是三个基于 GBDT(Gradient Boosting Decision Tree)代表性的算法实现GBDT 是机器学习中的一个非常流行并且有效的算法模型XGBoost(eXtreme Gradient Boosting):2014 年陈天奇博士提出的, 特点是计算速度快,模型表现好,可以用于分类和回归问题中LightGBM(Light Gradient Boosting Machine:)由微软开源的一个机器学习框架,它的训练原创 2021-07-02 20:36:15 · 2551 阅读 · 0 评论 -
RuntimeError: Given groups=1, weight of size [64, 3, 7, 7], expected input[1, 4, 224, 224] to have 3
处理图片时候,如下代码会报错resnet = torchvision.models.resnet18(pretrained=True)image = Image.open("test.png")image_tensor = preprocess(image)output = resnet.conv1(image_tensor.unsqueeze(0))此时需要把图片转换为RGB图片,代码如下:resnet = torchvision.models.resnet18(pretrained=T原创 2021-06-30 21:41:04 · 8077 阅读 · 0 评论 -
Conv(卷积)和Pooling layer(池化)的区别联系
不同点:Conv(卷积):提取特征,卷积核参数需要自己求解定义Pooling layer(池化):提取相似度,不需要设定参数相同点:都减少了维度池化操作不一定需要用到,因为池化是为了减少参数防止过拟合,如果本身数据量很大、模型本身好收敛,那么可以不用池化操作...原创 2021-06-27 17:17:05 · 3267 阅读 · 0 评论 -
windows10安装tensorflow2.0配置
1、查看本机的CUDA驱动适配版本桌面右键打开英伟达控制面板,点击帮助->系统信息->组件tensorflow各个版本与cuda版本的对应关系参考https://blog.csdn.net/ysten618/article/details/106928786/根据参考,我的电脑就是安装tensorflow_gpu-2.0.0版本,CUDA安装10.0版本,cudnn是7.4版本安装CUDA下载地址:https://developer.nvidia.com/downloads(注原创 2021-04-16 01:07:09 · 5646 阅读 · 0 评论 -
十一、OPTIMIZER 不同优化器方法及解决梯度下降抖动的问题
Batch Gradient Descent:全量处理Mini-Batch Gradient Descent:处理部分数据Stochastic Gradient Descent:每次只取一个数据训练import numpy as npimport torchx = np.random.random(size=(100, 8))linear = torch.nn.Linear(in_features=8, out_features=1)sigmoid = torch.nn.Sigmoid()原创 2021-06-23 23:25:01 · 442 阅读 · 1 评论 -
九、常见激活函数、权重w及初始化、learning rate调节
常见激活函数初始化learning rate调节以及early stop如果深度学习模型不ok,那么将learning rate调小基本上可以让所有模型变化我们可以设置成learning-rate和loss是一个相关的函数Loss越小,learning-rate越小(learning rate decay)当我们发现loss连续k次不下降的时候,我们可以提前停止训练过程,这个方法叫做“early stop”...原创 2021-06-23 22:28:31 · 328 阅读 · 0 评论 -
十、梯度消失与梯度爆炸
梯度消失与梯度爆炸梯度消失:如果某几个方向上的梯度很小时,乘积就可能很小,也就是梯度会很小,更新会很慢梯度爆炸:如果某几个方向上的梯度很大时,乘积就可能很大,也就是梯度会很大,梯度下降时会越过我们要求的最小值,有可能来回跳动解决方法:Batch normalization :类似于标准化,过大时会变小,过小时会变大,针对于梯度消失的优化,但是不能很好的解决梯度消失的问题Gradient clipping:直接将过大的梯度值变小...原创 2021-06-23 22:27:45 · 142 阅读 · 0 评论 -
八、Decision Tree 决策树
决策树模型:让计算机自动构建逐层的 if-else 模型信息熵参考:https://blog.csdn.net/weixin_39826984/article/details/111269019基尼系数参考:https://blog.csdn.net/weixin_41855010/article/details/110312523import numpy as npfrom collections import Counterfrom icecream import icfrom fu原创 2021-06-12 18:02:14 · 168 阅读 · 0 评论 -
七、SVM支撑向量机
符合线性可分的情况下import numpy as npimport matplotlib.pyplot as pltlabel_a = np.random.normal(6, 2, size=(50, 2))label_b = np.random.normal(-6, 2, size=(50, 2))plt.scatter(*zip(*label_a))plt.scatter(*zip(*label_b))label_a_x = label_a[:, 0]label_b_x = l原创 2021-06-12 17:49:24 · 69 阅读 · 0 评论 -
六、KNN优缺点
优点容易实现、容易理解模型调整容易,可以方便得改变k的数量,或者给不同距离的k进行加权适合解决各种复杂问题(分类、回归、高维、低维、复杂关系、简单关系)缺点运行时间久容易被异常值影响所需空间大高维空间的距离区分度不大...原创 2021-06-10 22:32:33 · 761 阅读 · 0 评论 -
五、多分类,One-hot
1、耗费空间2、数据量更新起来,效率低3、遗漏很多重要信息def one_hot(elements): pure = list(set(elements)) vectors = [] for e in elements: vec = [0] * len(pure) vec[pure.index(e)] = 1 vectors.append(vec) return vectorsprint(one_hot(["北京"原创 2021-06-08 22:32:57 · 275 阅读 · 0 评论 -
四、数据集的处理—分训练集和测试集、Normalization和standardization处理
一、数据集拆分method-01: split, using sklearn、pytorch、kerasfrom sklearn.model_selection import train_test_splitimport numpy as npsample_data = np.random.random(size=(100, 5))# print(sample_data)train, test = train_test_split(sample_data, train_size=0.8)#原创 2021-06-08 21:34:34 · 710 阅读 · 0 评论 -
三、线性回归梯度下降代码演示
import randomdef loss(k): return 3 * (k ** 2) + 7 * k - 10# -b / 2a = -7 / 6def partial(k): return 6 * k + 7k = random.randint(-10, 10)alpha = 1e-3 # 0.001for i in range(1000): k = k + (-1) * partial(k) *alpha print(k, loss(k)原创 2021-05-21 20:41:50 · 149 阅读 · 0 评论 -
二、监督式学习和非监督式学习
**监督学习:**是机器通过给定的输入x和输出y,来自动的生成f,输入新的x通过f输出预测y,最常用的就是梯度下降方法。**非监督学习:**训练集没有提供正确结果,而是让算法尝试识别不同数据之间的相似性,从而让有共同特征的数据能够被归类在一起...原创 2021-05-21 20:22:12 · 158 阅读 · 0 评论 -
一、动态规划(Dynamic programming )
问题:木头价格如下[1, 5, 8, 9, 10, 17, 17, 20, 24, 30, 33] 下表加一为米数,值为价格给出一段木头的长度,怎么切分价格最高?"""Cutting ProblemAll the dynamic programming:1. sub-problems2. Overlapping sub-problems3. parse solution"""from collections import defaultdictfrom functools imp原创 2021-05-20 23:16:35 · 123 阅读 · 0 评论 -
win10搭建tensorflow环境
1 安装anaconda到anaconda官网下载-----https://www.anaconda.com/distribution/注意,开始进入下载的页面默认是选择的macOS的,我们要选择windows安装过程注意事项:1.1 这里两处打上对勾,第一个是添加环境变量,第二个是注册系统的python(前提是电脑已经安装了python)1.2 后面有一步问是不是安装VSCode,...原创 2019-10-04 12:28:48 · 229 阅读 · 0 评论