机器学习
喝粥也会胖的唐僧
这个作者很懒,什么都没留下…
展开
-
pytorch和numpy的@用法
我们可以看到,x2*x3得到的是点乘的结果,而x2@x3才是真正的乘法,这样的写法只是为了简写,本来torch和numpy是提供的乘法规则的,只是这样计算相对来说简单一些。原创 2022-09-22 19:17:50 · 880 阅读 · 0 评论 -
svm使用gpu加速
sklearn里面的svm拿来训练真的贼慢,还不能使用多线程加速,哪怕你的cpu是8核或者16核,训练的时候只使用1核,找了各种方式没有找到最终发现一个库,叫做thundersvm,可以做gpu加速使用起来也十分的简单,api几乎和sklearn里面是一模一样的安装使用pip安装就行:pip install thundersvm下面演示一下二分类:import numpy as npimport pandas as pd#from sklearn import svmfro原创 2021-05-21 13:54:06 · 11938 阅读 · 16 评论 -
批量创建conda虚拟环境
可以使用文件的方式一次性创建虚拟环境:conda env create -f XXXXenv.yaml安装成功就会提示你对虚拟环境进行激活,不过直接激活不行,需要切换一下环境:source activate现在就会出现一个名为base的虚拟环境,接下来我们激活自己的刚才创建环境即可conda activate haha_env注意:假如我们的虚拟环境名为haha_env,同样我们可以退出虚拟环境conda deactivate我们可以知道自己的虚拟环境有哪些:原创 2021-04-21 11:02:10 · 437 阅读 · 0 评论 -
xgboost模型训练到部署
训练代码:from numpy import loadtxtfrom xgboost import XGBClassifierfrom sklearn.model_selection import train_test_splitfrom sklearn.metrics import accuracy_scoredataset = loadtxt('data.csv', delimiter=",")X=dataset[:,0:8]Y=dataset[:,8]seed = 7test原创 2020-12-22 22:14:41 · 2195 阅读 · 0 评论 -
使用百度AI开放平台处理数据集
手里一堆人脸数据集需要处理,总不能手动,太费事了于是使用一下百度的AI开放平台,地址如下:https://cloud.baidu.com/product/face使用起来非常简单,首先需要平台创建应用,此时就会有AK和SK这个用于获取token,有了token就可以直接请求了获取token的代码:注意填上做自己的AK和SK # encoding:utf-8import requests # client_id 为官网获取的AK, client_secret 为官网获.原创 2020-12-17 15:34:46 · 1345 阅读 · 1 评论 -
画出sklearn中的决策树的图
经常会使用烧sklearn中的决策树进行机器学习,比如分类,话不多说直接上代码:import numpy as npimport pandas as pdfrom sklearn.tree import DecisionTreeClassifierfrom sklearn.tree import export_graphviz##准备数据X=[np.random.rand(5) for i in range(200)]y=[int(np.random.rand()*5) for i原创 2020-09-26 16:57:28 · 4807 阅读 · 0 评论 -
xgboost设置cpu核数
xg默认是满核 运行,对应文档内容如下:nthread [default to maximum number of threads available if not set]Number of parallel threads used to run XGBoost我们也可以根据nthread这个参数进行设置试了一下:import xgboost as xgbfrom sklearn.datasets import make_hastie_10_2import numpy a.原创 2020-08-21 11:24:44 · 2259 阅读 · 0 评论 -
获取python运行输出的数据并解析存为dataFrame
在学习xg的 时候,想画学习曲线,但无奈没有没有这个evals_result_AttributeError: 'Booster' object has no attribute 'evals_result_'因为不是用的分类器或者回归器,导致训练后没有这个,但是又想获取学习曲线运行的结果 上面有数据,于是就想自己解析屏幕的数据试一下1)获取屏幕数据import subprocessimport pandas as pdimport datetimetop_info = .原创 2020-07-01 10:57:27 · 2567 阅读 · 0 评论 -
机器学习加速利器jax,让numpy加速30倍
JAX是CPU、GPU和TPU上的NumPy,具有出色的自动差异化功能,可用于高性能机器学习研究。这是官方的解释我今天就来试一试到底多快。我在同一台bu带gpu的机器上进行试验import numpy as npimport timex = np.random.random([5000, 5000]).astype(np.float32)st=time.time()np.ma...原创 2020-03-16 11:30:29 · 5123 阅读 · 5 评论 -
腾讯AI开放平台"ret": 16390
请求腾讯AI的api报错----------------------SEND REQ----------------------{ "msg": "req expired", "data": { "org_text": "", "trans_text": "", "type": 0 }, "ret": ...原创 2020-01-11 17:24:39 · 1146 阅读 · 0 评论 -
cannot import name '_validate_lengths' from 'numpy.lib.arraypad'
在import skimage的时候出错:>>> import skimageTraceback (most recent call last): File "<stdin>", line 1, in <module> File "/opt/AI/AN/lib/python3.7/site-packages/skimage/__init__...原创 2019-12-26 11:48:24 · 8553 阅读 · 1 评论 -
tensorflow将.h5模型转换成.pb
keras使用起来十分简洁,我们经常会拿来训练数据,然后保存为模型.h5,然而对于tensorflow来说,.pb才是它的通用格式,因为tensorflow-js,tensorflow-lite,tensorflow-serving都会使用到,因此转换是具有很强的实际意义的。import tensorflow as tftf.keras.backend.set_learning_...原创 2019-12-04 17:58:32 · 6226 阅读 · 3 评论 -
module 'tensorflow' has no attribute 'keras'
安装好tensorflowjs后报错 因为自己之前一直是使用tf2.0,而tensorflowjs使用不了2.0,而且记得命名手动删去site-packages下的tensorflow后,安装的tensorflowjs-1.3.2的,而且显示安装是成功了的,因为tensorflowjs-1.3.2依赖的是tensorflow1.15的,但是运行上面代码出了问题,问题实际上是自...原创 2019-12-03 16:46:38 · 5230 阅读 · 0 评论 -
print "phoenix_class_path:"
在之前搭建好的平台安装好Ancona,准备做AI相关的工作,但是发现利用Phoenix-sqline.py启动Phoenix报错print "phoenix_class_path:"只是因为Phoenix不支持python3的缘故,而Ancona3默认是python3解决方式要么直接卸了Ancona,要么让python和python3共存第一个很简单,这里有篇详细的:http...原创 2019-10-18 11:10:14 · 735 阅读 · 0 评论 -
AttributeError: module 'bson' has no attribute 'BSON'
运行带有hyperopt的python文件报错:Traceback (most recent call last): File "new_cc.py", line 125, in <module> best_params=optimize() File "new_charge.py", line 90, in optimize best = fmin(mo...原创 2019-10-17 10:32:45 · 3426 阅读 · 0 评论 -
ImportError: Failed to import any qt binding
运行python文件报错环境为anaconda3Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/root/anaconda3/lib/python3.7/site-packages/matplotlib/pyplot.py", line 115, i...原创 2019-10-10 15:42:21 · 3288 阅读 · 0 评论 -
Anaconda3-5.3.0-Linux-x86_64.sh: line 353: bunzip2: command not found
安装anaconda出错[/root/anaconda3] >>> PREFIX=/root/anaconda3Anaconda3-5.3.0-Linux-x86_64.sh: line 353: bunzip2: command not foundtar: This does not look like a tar archivetar: Exiting with...原创 2019-10-10 15:16:43 · 4099 阅读 · 0 评论 -
在linux安装机器学习环境
这里使用的是anaconda进行安装,因为anaconda集成了很多插件确实好用很多,省去了很多麻烦一、安装anaconda1)下载安装包https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/这里我是采用的最新版的2)bash 安装包https://blog.csdn.net/u010414589/article/details/...原创 2019-10-10 10:40:41 · 1150 阅读 · 0 评论 -
arima时间序列预测
代码一:from sklearn.metrics import r2_score import pandas as pddef evaluate_arima_model(X, arima_order): # prepare training dataset train_size = int(len(X) * 0.66) train, test = X[0:train_size],...原创 2019-09-25 11:47:32 · 1243 阅读 · 0 评论 -
lstm进行多元时间序列预测
这个代码是之前趴的人家代码进行改的,思路也是设置滑动窗口,只是稍微绕一点总之,都是把时间序列,转化成监督学习,然后利用监督学习的算法进行预测,长短记忆网络还是蛮好用的,只是需要提前安装TensorFlow和kerasfrom numpy import nanfrom numpy import isnanfrom pandas import read_csvfrom pandas i...原创 2019-09-25 11:31:38 · 5917 阅读 · 4 评论 -
Vector Space Model向量空间模型算法
这个模型主要是基于高中所学的空间向量,只不过由三维可能扩展成了超维空间话不多说,直接上图:假如我们有这样一个需求,搜索关键词然后根据相关性进行排序,比如有这样三个关键词: 我们分别给这三个关键词设置权重,假设管理员设置一个默认的权重(在真实情况这权重肯定比这复杂)关键词 女人 8 喜欢 3 什么 5 假设我们有4个网页,如何在用户进行...原创 2018-12-06 20:31:14 · 1106 阅读 · 0 评论 -
h2o flow初探
h2o包括很多产品,h2o flow是其中一款便利的机器学习,深度学习的工具,在web UI上操作即可,不用编写代码就能轻松实现数据的挖掘(当然这也是它的弊端,不写代码肯定功能会受到一定的限制啦)。 对于flow的意思就是流的意思,其实h2o flow 的核心思想就是分成若干个cell,然后cell按照先后顺序进行flow。 这若干个cell就统称为cells,每个c...原创 2019-08-19 18:05:15 · 3347 阅读 · 0 评论 -
h2o flow cluster启动
假如我有两台机器,拟进行集群启动,启动方式很简单,我是在linux上进行启动的。(1)首先需要新建一个文件,随便你怎么命名,我是命名为flatfile.txt,在文件添加iproot@node11 h2o-3.26.0.2]# cat flatfile.txt node11:54321node12:54321(2)将文件拷贝到第二台机器上scp flatfile.txt ...原创 2019-08-20 11:37:27 · 817 阅读 · 0 评论 -
sparkling-water的介绍与实践(command line)
sparkling-water是将spark和h2o集成与一体的工具,主要思想是利用h2o进行数据挖掘,而利用进行数据处理和一部分计算,具体架构如下: 我们可以从图中看到,spark对源数据做了处理,然后交给h2o进行建模,在预测阶段也作为了计算引擎, sparkling-water的牛逼之处在于使用了和spark的一样的数据结构,这样在数据处理的时候可以十分灵活。 ...原创 2019-08-20 17:45:32 · 6881 阅读 · 1 评论 -
看源码代学习逻辑回归加强其理解
逻辑回归是一个分类算法,不是一个纯回归问题,光看书本疑惑还是会很多,比如:(1)sigmoid函数怎么就能够分类?是怎么进行分类的?(2)逻辑回归是什么时候迭代终止,什么时候才算分类成功呢? 在机器学习领域经常会用到激活函数这个概念,这函数的作用无非就是进行空间变换,sigmoid函数作为经典的激活函数,会将为(-无穷,+无穷)的数变换为(0,1)范围的数,而且他会有一个很特殊的...原创 2019-09-22 21:30:41 · 513 阅读 · 0 评论 -
读源码理解knn
knn是一个很神奇的算法,是不需要进行训练的,直接进行预测,那它是怎么进行预测的呢?首先我们来看一幅图:假设我们有一个训练集x_train和y,我们要预测x_test中的数据的类别。在knn里是怎么做的呢? 我们先固定x_test在一个具体的行上,我们用字母i表示,然后我们依次和x_train的每一行计算欧氏距离,然后我们就可以得到一堆的欧氏距离,紧接着我们对这一堆欧式距离...原创 2019-09-23 11:01:48 · 436 阅读 · 0 评论 -
读源码理解线性回归
提到线性回归,似乎感觉很简单,不就是用一条线作为一个模型来预测,实际上根本没有我们想的那么简单。为何这么说呢?主要就是我们怎么选择一条合适的线做为模型呢?什么时候迭代结束呢?loss函数会给我们答案,但是loss又不是仅仅是最小二乘法就足够的,因为我们要考虑过拟合,这时就会用到正则项。也就是我们真正在训练的过程中的loss=loss(损失)+L(正则项)正则项分为两种一个...原创 2019-09-23 11:32:53 · 455 阅读 · 0 评论 -
train_test_split切分数据集工具
顾名思义,这是一个切分训练集与测试集的工具from sklearn.model_selection import train_test_split 如果我们不使用,而是手动进行划分,要么进行简单的操作——划去前80%为训练集,后20%为测试集,这样会带来很多的问题,因为这样做,我们切出来的会让训练集和测试集的分布很不一致,我们可以看一下简单粗暴方法切出来的分布图:train, t...原创 2019-09-25 10:37:41 · 2017 阅读 · 0 评论 -
利用xgboost进行多元时间序列预测
利用2019年ccf的数据集进行测试(乘用车销量预测)主要思路进行划分出很多窗口,这里以1320*4条数据为一个窗口因为每个省都有60个车型,一共22个省,就是1320,预测未来4个月,所以用的4import pandas as pdtrain_sales = pd.read_csv('C:\\Train\\train_sales_data.csv',header=0)trai...原创 2019-09-25 10:55:03 · 9891 阅读 · 14 评论 -
利用lightgbm进行多元时间序列预测
思路和上一篇xg一样,也是同样的一个数据集,只是换成了lightgbmimport pandas as pdtrain_sales = pd.read_csv('C:\\Train\\train_sales_data.csv',header=0)train_search = pd.read_csv('C:\\Train\\train_search_data.csv',header=0...原创 2019-09-25 11:02:52 · 11722 阅读 · 3 评论 -
利用随机森林进行多元时间序列的预测
思路个前面的两篇一致(xg,lgbm),只是换了一个数据集,感兴趣的小伙伴可以将这个代码换成之前的数据集,这里我是预测为了7天的数据,利用一年的数据。另外采用的调参方式也进行了改变,这次不是hyperopt,也是gridsearchimport pandas as pd import gcfrom numpy import nanfrom numpy import isnanf...原创 2019-09-25 11:14:50 · 12892 阅读 · 9 评论 -
Adaboost算法的初步理解
菜鸟初次接触Adaboost,期间存在着不少疑惑之处,如下所示:1)如何训练得到的弱分类器,我们需要训练出多少个弱分类器进行后续的计算?对若分类器有什么要求吗?2)为什么最后要进行组合相加(投票法),有什么理论可以支撑?3)最后得到的强分类器是如何体现出分类效果的?迭代次数是不是需要最终err为0才迭代结束?4)该算法存在过拟合现象吗?5)我们可不可以对迭代的过程进行实例化?可不可以用几何直观...原创 2018-07-14 17:37:10 · 6437 阅读 · 2 评论