算法实现
机器学习深度学习算法工程实现
thinker_1120
这个作者很懒,什么都没留下…
展开
-
大模型系列文章集锦
大模型搭建应用和prompt原创 2020-05-17 14:57:54 · 1271 阅读 · 0 评论 -
分布式机器学习训练方案
分布式机器学习训练主流方案:Spark MLlib、Parameter Server、Tensorflow。分布式:指计算节点之间,不共享内存,需要通过网络通信交换数据。Spark建立在大量廉价计算节点上,这些节点可以是廉价主机、也可以是虚拟的Docker容器。Spark将程序拆解成任务DAG,在并行处理DAG过程,关键是找到哪些部分可以并行处理,哪些必须shuffle和reduce。shuffle和reduce操作,决定了纯并行处理阶段的边界,依据此 可以将DAG分割成不同的并行处理stage。原创 2019-08-17 21:51:32 · 588 阅读 · 0 评论 -
调参方法-超参数优化
模型参数:(1)通过学习获得(2)学习开始前设定,没办法在学习过程得到,如学习率、隐层数。把第(2)类参数称为超参数;优化超参数,可以提高模型在独立数据集上的性能;常用交叉验证法,评估不同超参数下,模型的泛化性能。sklearn包提供的获取候选参数搜索方法:(1)GridSearchCV(2)RandomizedSearchCV。GridSearchCV对一个分类器进行超参数优化,通过优化阶段未使用的验证集进行评估。该方法适用于小数据集;大数据集参数组合较多时,尝试使用坐标下降法调参。即,每次贪心原创 2019-08-16 17:34:28 · 903 阅读 · 0 评论 -
数据比赛大杀器:Python树形模型集成库Xgboost&LightGBM
以下内容是个人学习笔记,图片及调参内容参考自寒小阳老师讲义。sklearn库:中小型数据集;Xgboost/LightGBM库:工业界大型数据,可以分布式部署。 工业界非常喜欢树形模型原因:(1)可解释性好,和人的判断非常相似,可以顺着树的路径找出做决策的方式,出问题容易debug。(2)树形模型不需要做幅度缩放,树分裂时不受各个特征变化幅度的影响(衡量各个特征时,熵/Gini index的...原创 2018-01-07 00:01:31 · 2560 阅读 · 0 评论 -
sklearn库classification metrics分类问题评价准则及API使用
accuracy_score(y_true,y_pred,normalize=True,sample_weight=None)Returns:score(float)总共有nsamplesnsamplesn_{samples}个样例,y^iy^i\hat{y}_i是第iii个样例的预测值,yiyiy_i是第iii个样例的真实值, 则预测的准确率accuracy准确率accuracy准确率a...原创 2018-03-02 17:01:00 · 2897 阅读 · 0 评论 -
Python机器学习库sklearn网格搜索与交叉验证
网格搜索一般是针对参数进行寻优,交叉验证是为了验证训练模型拟合程度。sklearn中的相关API如下: (1)交叉验证的首要工作:切分数据集train/validation/testA.)没指定数据切分方式,直接选用cross_val_score按默认切分方式进行交叉验证评估得分,如下图from sklearn.model_selection import cross...原创 2017-11-20 02:57:02 · 14318 阅读 · 2 评论 -
利用基于线性假设的线性分类器LogisticRegression/SGDClassifier进行二类分类(复习1)
本文是个人学习笔记,内容主要涉及LR(LogisticRegression)和SGD(SGDClassifier)对breast-cancer数据集进行线性二分类。 线性分类器:假设数据特征与分类目标之间是线性关系的模型,通过累加计算每个维度的特征与各自权重的乘积来帮助类别决策。二类分类任务的评估指标:混淆矩阵 F1F1 measuremeasure是准确率和召回率两个指标的调和平原创 2018-01-13 15:16:27 · 1864 阅读 · 0 评论 -
特征筛选(复习15)
本文是个人学习笔记,内容主要基于sklearn库的特征筛选器对Titanic数据集进行特征预处理后,再进行分类。特征筛选与PCA这类通过选择主成分对特征进行重建的方法略有区别:对于PCA而言,经常无法解释重建之后的特征;但是特征筛选不存在对特征值的修改,其更侧重于寻找那些对模型的性能提升较大的少量特征。import pandas as pdtitanic=pd.read_csv('http://b原创 2018-01-21 00:03:36 · 713 阅读 · 0 评论 -
特征抽取(复习14)
本文是个人学习笔记,内容主要基于DictVectorizer对字典存储的数据进行特征抽取和向量化,对sklearn内置的fetch_20newsgroups——新闻数据抓取器从互联网上即时下载的新闻文本数据进行去停用词、构建词表、CountVectorizer和TfidfVectorizer词向量化等处理后,再利用MultinomialNB分类器进行多类分类。前面的实验都是从标准的训练数据中,原创 2018-01-20 17:51:36 · 480 阅读 · 0 评论 -
基于PCA模型的数据降维(复习13)
本文是个人学习笔记,内容主要基于PCA降维模型对手写体数据图像集进行降维,把原始64维度的数字图像压缩映射到二维空间,实验结果表明绝大多数数字之间仍然具有区分性。在数据表现方面,无法用肉眼观测超过三个维度的特征。对于数据维度非常高的数据样本,通过无监督学习可以对数据进行降维,保留最具有区分性的低维度特征。在特征降维的方法中,主成分分析(Principal Component Analysis)是最为原创 2018-01-20 16:39:57 · 3987 阅读 · 1 评论 -
分类问题ROC曲线和KS曲线的绘制
ROC曲线与AUCROC曲线下方的面积是AUC,AUC表示对于随机选择的正类别样本确实为正类别,以及随机选择的负类别样本为正类别,分类器更确信前者的概率。 分类问题的模型评估理论参考: http://blog.csdn.net/cymy001/article/details/79366754 Python机器学习库sklearn分类问题的模型评估API参考: http://blog.c...原创 2018-03-19 16:43:28 · 11390 阅读 · 4 评论 -
sklearn库Preprocessing and Normalization预处理方法及API使用
sklearn.preprocessing.Binarizer(threshold=0.0, copy=True)根据阈值,进行特征二值化映射threshold:阈值,默认是0,大于阈值映射为1,小于阈值映射为0;在稀疏矩阵中,该阈值参数一般不会小于0 copy:当二值化前的输入是scipy的csr格式时,二值化后的输出是否在内存中占用原位置(default True是新开辟位置...原创 2018-04-16 15:00:34 · 5580 阅读 · 1 评论 -
sklearn库feature selection特征选择算法及API使用
sklearn.feature_selection特征选择模块包括:univariate filter selection methods单变量过滤选择方法;recursive feature elimination algorithm递归特征移除方法Removing features with low variance移除低方差特征VarianceThreshold是一种进行特征...原创 2018-03-02 18:01:59 · 15705 阅读 · 1 评论 -
sklearn库Ensemble集成模型框架及API使用(待整理)
sklearn.ensemble.AdaBoostClassifier(base_estimator=None, n_estimators=50, learning_rate=1.0, algorithm=’SAMME.R’, random_state=None)原创 2018-04-18 18:32:23 · 4959 阅读 · 0 评论 -
sklearn库regression metrics回归问题评价准则及API使用
原创 2018-12-20 14:40:47 · 4190 阅读 · 1 评论 -
LightGBM参数及分布式
Xgboost的缺点(1)在每一次迭代的时候,都需要遍历整个训练数据多次。如果把整个训练数据装进内存则会限制训练数据的大小;如果不装进内存,反复地读写训练数据又会消耗非常大的时间。(2)预排序方法(pre-sorted):首先,空间消耗大。这样的算法需要保存数据的特征值,还保存了特征排序的结果(例如排序后的索引,为了后续快速的计算分割点),这里需要消耗训练数据两倍的内存。其次,时间上也有较大的...原创 2019-03-26 18:35:09 · 3276 阅读 · 0 评论 -
Python机器学习库sklearn里利用LR模型进行三分类(多分类)的原理
有关LR模型的完整理论知识参考http://blog.csdn.net/cymy001/article/details/78153036首先,LR将线性模型利用sigmoid函数进一步做了非线性映射。将分类超平面两侧的正负样本点,通过压缩函数转化成了以0.5为分解的两类:类别0和类别1。这个转化过程见下图:上图给出的是线性边界与LR分布函数(即sigmoid函数)的...原创 2017-11-14 19:25:47 · 17680 阅读 · 1 评论 -
基于K-Means模型的数据聚类(复习12)
本文是个人学习笔记,内容主要基于K-means聚类模型KMeans对手写体数据集进行聚类分组。无监督学习(Unsupervised Learning)着重于发现数据本身的分布特点,发现数据的“群落”,寻找“离群”的样本。K-means算法:预先设定聚类的个数,然后不断更新聚类中心,目标是让所有数据点到其所属聚类中心距离的平方和趋于稳定。 K-means算法执行的4个阶段:(1)随机布设K个特征空间原创 2018-01-20 15:10:59 · 4939 阅读 · 0 评论 -
利用树的集成回归模型RandomForestRegressor/ExtraTreesRegressor/GradientBoostingRegressor进行回归预测(复习11)
本文是个人学习笔记,内容主要基于树的三种集成回归模型RandomForestRegressor,ExtraTreesRegressor以及GradientBoostingRegressor对boston数据集学习回归模型和利用模型预测。普通的随机森林模型构建的分裂节点时是随机选取特征的,极端随机森林在构建每一棵树的分裂节点时,不会任意的选取特征,而是先随机收集一部分特征,然后利用信息熵/基尼指原创 2018-01-20 13:31:40 · 7449 阅读 · 0 评论 -
利用回归树DecisionTreeRegressor进行回归预测(复习10)
本文是个人学习笔记,内容主要基于回归树DecisionTreeRegressor对boston数据集学习回归模型和利用模型预测。 树模型可以解决非线性特征的问题,树模型不要求对特征标准化和统一量化(即数值型和类目型特征都可以直接被用到树模型的构建和预测过程),树模型可以直观地输出决策过程,使得预测结果具有可解释性。 使用树模型时要防止过拟合,对数据噪声的敏感度较高(预测稳定性较差),有训练数据构建原创 2018-01-20 11:37:45 · 13151 阅读 · 0 评论 -
Python机器学习库sklearn里利用决策树模型进行回归分析的原理
决策树的相关理论参考http://blog.csdn.net/cymy001/article/details/78027083#原数据网址变了,新换的数据地址需要处理http://lib.stat.cmu.edu/datasets/bostonimport pandas as pdimport numpy as np#df = pd.read_csv('http://lib.stat.c原创 2017-11-17 04:51:57 · 2539 阅读 · 0 评论 -
Python机器学习库sklearn里利用感知机进行三分类(多分类)的原理
感知机的理论参考http://blog.csdn.net/cymy001/article/details/77992416from IPython.display import Image %matplotlib inline # Added version check for recent scikit-learn 0.18 checks from原创 2017-11-14 19:35:32 · 7716 阅读 · 0 评论 -
Python机器学习库sklearn构造分段与多项式特征
组合特征 A&Bx => x^2 x^3 X^4…红色 蓝色 紫色 黄色 [1,0,0,0]S, M, L, XL, XXL, XXXL [1,0,0,0,0,0]#mglearn包里的make_wave函数import numpy as npdef make_wave(n_samples=100): rnd = np.random.RandomState(42) x =原创 2017-11-19 20:12:16 · 4936 阅读 · 0 评论 -
Python利用pandas/sklearn处理类别型特征;手动分段与离散化处理连续型特征
类别型变量特征:独热向量编码/One-Hot-Encoding (Dummy variables) 颜色:红、黄、紫[1,0,0] [0,1,0] [0,0,1] LR = theta*X 红色 蓝色 黄色 紫色 咖啡色 白色… => 红色 蓝色 黄色 rare sklearn OneHotEncoder;pandas get_dummies#原创 2017-11-19 19:12:24 · 19133 阅读 · 0 评论 -
Python机器学习库sklearn自动特征选择(训练集)
1.单变量分析from sklearn.feature_selection import SelectPercentilefrom sklearn.datasets import load_breast_cancerfrom sklearn.feature_selection import SelectPercentile#http://scikit-learn.org/stable/modul原创 2017-11-19 19:37:46 · 14405 阅读 · 2 评论 -
Python机器学习库sklearn KFold交叉验证分组情况样本
sklearn官网KFold交叉验证 http://scikit-learn.org/stable/modules/generated/sklearn.model_selection.KFold.html#sklearn.model_selection.KFoldfrom sklearn.cross_validation import KFoldfold = KFold(50,5,shuffle原创 2017-11-28 20:49:57 · 7026 阅读 · 2 评论 -
模型泛化能力——过拟合与欠拟合,L1/L2正则化(复习16)
本文是个人学习笔记,内容主要是观察多项式曲线对数据的拟合/过拟合/欠拟合,及加正则化项对模型的不同修正作用。 拟合:机器学习模型在训练的过程中,通过更新参数,使模型不断契合可观测数据(训练集)的过程。利用一次曲线回归拟合X_train=[[6],[8],[10],[14],[18]]y_train=[[7],[9],[13],[17.5],[18]]from sklearn.l原创 2018-01-21 11:13:28 · 4706 阅读 · 2 评论 -
模型调优:交叉验证,超参数搜索(复习17)
用模型在测试集上进行性能评估前,通常是希望尽可能利用手头现有的数据对模型进行调优,甚至可以粗略地估计测试结果。通常,对现有数据进行采样分割:一部分数据用于模型参数训练,即训练集;一部分数据用于调优模型配置和特征选择,且对未知的测试性能做出估计,即验证集。交叉验证可以保证所有数据都有被训练和验证的机会,也尽最大可能让优化的模型性能表现的更加可信。下图给出了十折交叉验证的示意图。 模型的超参数是指实验原创 2018-01-21 14:54:51 · 7425 阅读 · 0 评论 -
利用基于线性假设的支持向量机分类器LinearSVC进行多类分类(复习2)
本文是个人学习笔记,内容主要涉及SVC(Support Vector Classifier)对sklearn内置的digits邮票手写数字数据集进行线性多类分类。 支持向量机分类器(Support Vector Classifier)是根据训练样本的分布,搜索所以可能的线性分类器中最佳的那个,决定分类边界位置的样本并不是所有训练数据,是其中的两个类别空间的间隔最小的两个不同类别的数据点,即“支持向量原创 2018-01-13 16:00:11 · 2868 阅读 · 0 评论 -
利用K近邻(回归)KNeighborsRegressor进行回归预测(复习9)
本文是个人学习笔记,内容主要基于K近邻(回归)KNeighborsRegressor对boston数据集学习回归模型和利用模型预测。 K近邻(回归)模型同样是无参数模型,只是借助K个最近训练样本的目标数值,对待测样本的回归值进行决策。即根据样本的相似度预测回归值。 衡量样本待测样本回归值的不同方式:(1)对K个近邻目标数值使用普通的算术平均算法(2)对K个近邻目标数值考虑距离的差异进行加权平均。原创 2018-01-20 11:03:42 · 20043 阅读 · 1 评论 -
利用支持向量机(回归)SVR进行回归预测(复习8)
本文是个人学习笔记,内容主要基于支持向量机(回归)SVR对boston数据集学习回归模型和利用模型预测。 SVR同SVC一样,是从训练数据中选取一部分更加有效地支持向量,根据这些训练样本的值通过回归分析预测目标。 在SVM里,核函数是一种非常有用的特征映射技巧,径向基核函数对特征可以进行非线性映射。from sklearn.datasets import load_bostonbosto原创 2018-01-20 10:31:25 · 59003 阅读 · 3 评论 -
利用线性回归器LinearRegression/SGDRegressor进行回归预测(复习7)
本文是个人学习笔记,内容主要涉及“基于解析方法估计参数的LinearRegression”和“基于随机梯度下降法估计参数的SGDRegressor”对boston数据集进行线性回归拟合和预测。当根据数据建模和预测时,如果待预测的目标是连续变量,即为回归问题。回归问题学习时,优化的目标是最小化预测结果与真实值之间的差异,通过优化算法学习到模型参数。预测时,不能苛求回归预测的数值结果要严格地与真实原创 2018-01-18 22:12:09 · 10249 阅读 · 1 评论 -
Python机器学习库sklearn.model_selection模块的几个方法参数
强大的sklearn库可以解决的问题: train_test_split返回切分的数据集train/testtrain_test_split(*array,test_size=0.25,train_size=None,random_state=None,shuffle=True,stratify=None)*array:切分数据源(list/np.array/pd.DataFra...原创 2018-01-16 19:52:28 · 44030 阅读 · 1 评论 -
利用树的集成模型分类器RandomForestClassifier/GradientBoostingClassifier进行二类分类(复习6)
本文是个人学习笔记,内容主要涉及树的集成模型随机森林(RandomForest)和梯度提升树(GradientBoostingDecisionTree)对titanic数据集进行二类分类。集成模型就是综合考量多个分类器的预测结果,再作出决策。“综合考量”的方式大体分2种:(1)按一定次序搭建多个分类模型,后续模型的加入要对现有集成模型的性能有所贡献,从而不断提升更新后的集成模型性能。在每一棵数生成过原创 2018-01-14 00:22:01 · 4293 阅读 · 0 评论 -
利用平行坐标轴分类的决策树分类器DecisionTreeClassifier进行二类分类(复习5)
本文是个人学习笔记,内容主要涉及决策树(DecisionTreeClassifier)对titanic数据集进行二类分类。当自变量和因变量呈现分段函数关系时(比如公交车让座),在数学上描述这种非线性关系是用分段函数,在ML模型里,决策树是描述这种非线性关系的好选择。决策树结点代表数据特征,每个节点下的分支代表对应特征值的分类,决策树的所有叶子节点表示模型的决策结果。使用多种不同的特征组合搭原创 2018-01-13 23:23:53 · 1148 阅读 · 0 评论 -
利用基于贝叶斯定理的朴素贝叶斯分类器MultinomialNB进行多类分类(复习3)
本文是个人学习笔记,内容主要涉及MultinomialNB(Naive Bayes)对sklearn内置的fetch_20newsgroups——新闻数据抓取器从互联网上即时下载的新闻文本数据进行多类分类。 朴素贝叶斯模型被广泛应用于互联网新闻的分类、垃圾邮件的筛选等分类任务,它单独考量每一维度特征被分类的条件概率,然后综合这些概率对其所在的特征向量做出分类预测,即“假设各个维度上的特征被分类的条件原创 2018-01-13 16:54:46 · 15440 阅读 · 7 评论 -
利用无参数的K近邻分类器KNeighborsClassifier进行三类分类(复习4)
本文是个人学习笔记,内容主要涉及KNN(KNeighborsClassifier)对sklearn内置的Iris数据集进行三类分类。 K近邻模型的大致决策方式如下图: 寻找与某个待分类样本在特征空间中距离最近的K个已标记样本作为参考,进而帮助做出分类决策。K取不同的值,会得到不同效果的分类器(比如上如K=3时红色点被分为绿色类,K=7时红色点被分为蓝色类)。K近邻算法没有参数训练过程,即没有通原创 2018-01-13 17:28:58 · 1572 阅读 · 0 评论 -
Python机器学习库sklearn数据预处理,数据集构建,特征选择
from IPython.display import Image%matplotlib inline# Added version check for recent scikit-learn 0.18 checksfrom distutils.version import LooseVersion as Versionfrom sklearn import __version__ as原创 2017-11-15 23:11:34 · 6645 阅读 · 3 评论