机器学习
samoyan
分享技术成长的日常
展开
-
调整兰德系数-评估聚类效果的指标
调整兰德系数(Adjusted Rand Index, ARI)是一种用于评估聚类结果与真实标签之间相似度的指标。它在传统兰德系数(Rand Index, RI)的基础上进行了调整,考虑了随机聚类的期望值,因此能够更公平地评估聚类结果。原创 2024-09-12 17:33:24 · 1247 阅读 · 0 评论 -
机器学习 最小二乘学习法 matlab
这是一种基于最小二乘法的非线性回归方法,通过构造一组基函数来拟合非线性的目标函数。这种方法在机器学习中被广泛使用,特别是在处理回归问题时。接下来,构造了一个包含15个正弦和余弦函数的基函数集合,用于拟合上述的sinc函数。,它是在-3到3之间均匀分布的1000个点。,并将预测结果和真实结果绘制在同一张图上。生成的,这是一个带有噪声的sinc函数。是在-3到3之间均匀分布的50个点,,使用最小二乘法求解了模型的参数。首先,生成了一组训练数据。然后,生成了一组测试数据。最后,使用求得的参数。原创 2015-11-13 16:09:22 · 881 阅读 · 1 评论 -
退火在模型训练中的意义
在深度学习中,学习率退火是比较常见的,它涉及到在训练过程中逐渐减少学习率。在模型训练中,逐渐减少学习率可以帮助模型在训练早期快速收敛,在训练后期通过更小的步长精细调整,避免过度拟合,从而找到损失函数的全局最优或较好的局部最优解。这可能是因为在退火阶段,模型的学习率较低,能够更精细地适应高质量数据的特点,而且避免了小数据集在长期预训练中的过度使用。通过在退火阶段混合使用高质量数据和通用数据,可以有效地提升模型在特定任务上的性能,同时避免了小数据集的过度使用问题。原创 2024-02-04 14:39:39 · 3466 阅读 · 0 评论 -
nvidia-smi 可以显示gpu占用量和使用率,但不显示PID等详细进程信息的解决方法
使用fuser命令可以查看哪些进程正在使用指定的文件或目录。在Linux系统中,GPU设备通常被映射到/dev/nvidia*文件中,因此可以使用fuser命令来查看哪些进程正在使用GPU设备。在上述示例中,可以看到/dev/nvidia0设备正在被PID为1234的python进程使用,/dev/nvidia1设备正在被PID为5678的tensorflow进程使用。执行上述命令后,会列出所有正在使用GPU设备的进程号和相关信息。使用fuser -v /dev/nvidia*查看使用gpu的进程号。原创 2023-05-29 10:06:27 · 2739 阅读 · 0 评论 -
Fatal Python error: Py_Initialize: Unable to get the locale encoding
【代码】Fatal Python error: Py_Initialize: Unable to get the locale encoding。原创 2023-01-17 14:09:13 · 2848 阅读 · 0 评论 -
使用Pyspark 运行lightgbm的预测函数时遇到 expected zero arguments for construction of ClassDict (for numpy.dtype)
运行Pyspark,出现:net.razorvine.pickle.PickleException: expected zero arguments for construction of ClassDict (for numpy.dtype)原创 2023-01-11 20:10:56 · 1011 阅读 · 0 评论 -
lightgbm模型的训练参数含义
【代码】lightgbm的训练参数记录。原创 2022-12-30 14:22:33 · 1519 阅读 · 0 评论 -
通过sse 寻找kmean 的k 值
# -*- coding: utf-8 -*-"""K-means-Single-Test"""import matplotlib.pyplot as pltfrom sklearn.cluster import KMeansfrom tools.preprocess import *from tools.visualizer import plot_resultfrom sklearn.feature_extraction.text import TfidfTransformer, Tf.原创 2022-03-17 11:52:14 · 1987 阅读 · 0 评论 -
指向性目标的实时联合检测分割网络MCN复现笔记
复现git :感谢大佬们!!!:GitHub - luogen1996/MCN: [CVPR2020] Multi-task Collaborative Network for Joint Referring Expression Comprehension and Segmentation, CVPR2020 (oral)[CVPR2020] Multi-task Collaborative Network for Joint Referring Expression Comprehension and原创 2021-12-22 10:33:53 · 397 阅读 · 0 评论 -
python 手动实现gelu,sigmod
import matplotlib.pyplot as pltimport numpy as npdef sigmod(x): return 1.0/(1+np.exp(-x))def gelu(x): # gelu 为高斯误差线性单元,gelu(x) = xΦ(x),Φ(x) 正态分布的累积分布函数Φ(x)没有解析表达式,它的值可以通过数值积分、泰勒级数、或者渐近序列近似得到。 # return 0.5*x*(1+ np.tanh(np.sqrt(2/np.pi)*(x.原创 2021-12-14 16:52:20 · 2865 阅读 · 0 评论 -
python 手动实现kmeans
import timeimport numpy as npfrom sklearn.datasets import make_blobsdef euclidean_distance(a, b): # 计算两个向量之间的欧氏距离 return np.sqrt(np.sum(np.power(a-b, 2), axis=-1))def init_centers(x, k, seed=None): #! 随机初始化 k 个中心点 if seed is not None:.原创 2021-11-23 11:31:21 · 1056 阅读 · 0 评论 -
python实现dropout
主要是使用二项分布np.random.binomial() 生成对应的序列。import numpy as npdef dropout(input_data,prob): if prob < 0 or prob > 1: raise "error" retain_prob = 1- prob sample = np.random.binomial(1,retain_prob,input_data.shape) x = input_dat.原创 2021-11-12 17:58:54 · 2067 阅读 · 1 评论 -
fastText、word2vec以及glove之前的区别
1) word2vec主要是指CBOW。原创 2021-10-19 11:32:00 · 216 阅读 · 0 评论 -
手动Python实现逻辑回归LR
LR的基本思想是基于极大似然估计进行的:# 导入相应的库import numpy as npimport matplotlib.pyplot as plt# 随机生成样本数据。 二分类问题,每一个类别生成5000个样本数据np.random.seed(12)num_observations = 5000x1 = np.random.multivariate_normal([0, 0], [[1, .75],[.75, 1]], num_observations)x2 = np.rand原创 2021-10-18 11:19:54 · 1218 阅读 · 1 评论 -
AUC的含义以及Python代码手动实现
主要以二分类为例,AUC曲线是ROC曲线下方的面积。ROC曲线的横坐标是假阳率,纵坐标是真阳率。AUC 的计算1)将所有正样本pos1,pos2,,,posm与所有负样本neg1,neg2,negn组成m*n样本对;2)若正样本的预测概率大于负样本的预测概率,计数count增加1;若相等,计数count增加0.5,否则增加0;3)AUC = count/m*n;import numpy as npfrom sklearn.metrics import roc_curvefrom原创 2021-10-14 17:28:29 · 853 阅读 · 0 评论 -
使用kmeans进行文本聚类
直接上代码# -*- coding: utf-8 -*-import jiebafrom sklearn.feature_extraction.text import CountVectorizerfrom sklearn.feature_extraction.text import TfidfTransformerfrom sklearn.cluster import KMeansfrom sklearn.decomposition import PCA,KernelPCAimport原创 2021-03-23 11:36:20 · 2794 阅读 · 2 评论 -
使用DBSCAN进行文本聚类
1、直接上代码# -*- coding: utf-8 -*-import jiebafrom sklearn.feature_extraction.text import CountVectorizerfrom sklearn.feature_extraction.text import TfidfTransformerfrom sklearn.cluster import DBSCANfrom sklearn.decomposition import PCA, KernelPCAimp原创 2021-03-23 11:34:59 · 2140 阅读 · 0 评论 -
机器学习 需要和不需要做特征归一化的情况总结
需要做特征归一化的情况总结1、有关距离计算时,比如K-means、KNN、PCA、SVM等,归一化可以让样本间cos disitace 或者inner dot 结果的差异增大2、当损失函数有正则项时,当某些特征比较大的时候,权重会比较小。正则化对权重的限制就不明显了。3、使用梯度下降算法时,如LR,神经网络。加快收敛,缓解过拟合等4、针对一些神经网络,防止特定的激活函数进入饱和区。不需要做特征归一化的情况总结1、与距离计算无关的概率模型,eg,Naive Bayes;2、与.原创 2020-12-14 16:38:51 · 1327 阅读 · 0 评论 -
focal loss 的 二分类以及多分类实现
1、tf 版本# 二分类def binary_focal_loss(gamma=2, alpha=0.25): alpha = tf.constant(alpha, dtype=tf.float32) gamma = tf.constant(gamma, dtype=tf.float32) def focal_loss_sigmoid(y_true, y_pred): labels = tf.cast(y_true, tf.float32) L原创 2020-12-07 11:53:10 · 3933 阅读 · 6 评论 -
模型过拟合和欠拟合跟偏差和方差关系
模型过拟合和欠拟合跟偏差和方差关系过拟合是指模型对于训练数据拟合呈过当的情况,反映到评估指标上,就是模型在训练集上的表现好,但是在测试集和新数据上的表现较差。 欠拟合指的是模型在训练和预测时表现都不好。偏差是指预测值跟真实值直接的差别方差是指模型迭代过程中,预测值的波动情况。用模型在数据上的偏差和方差指标来表示就是:欠拟合时候,偏差和方差都比较大; 而过拟合时,偏差较小但方差较大。过拟合和欠拟合的解决方法:https://blog.csdn.net/baoyan2015/arti原创 2020-11-16 09:54:55 · 2248 阅读 · 0 评论 -
模型过拟合和欠拟合解决方法
降低过拟合的方法:1. 特征 减少不必要的特征 1) 根据特征的重要性,直接删除稀疏特征。 2) 通过收集更多的数据,或者用数据增广的方法,产生更多的训练数据;从而阻止模型学习不相关的特征。2. 模型复杂度 降低模型复杂度 1)神经网络,减少网络层数和神经元个数 2)决策树模型中降低树的深度,进行剪枝3. 正则化加入正则化项并提高正则化项的系数。 1) 对复杂模型和系数比较大的模型进行惩罚,使得算法倾向于训练简单的模型。4. 多模型...原创 2020-11-13 17:47:22 · 1797 阅读 · 0 评论 -
python版本, lightgbm使用示例
1、安装lightgbm包,pip install lightgbm -i https://pypi.tuna.tsinghua.edu.cn/simple --default-timeout=1002、lightgbm原理:https://www.cnblogs.com/jiangxinyang/p/9337094.html3、lightgbm使用示例:def train(x_train, y_train, q_train, model_save_path): '''.原创 2020-11-09 10:50:27 · 2044 阅读 · 1 评论