勾八头歌之分类回归聚类

news2024/12/25 12:25:16

一、机器学习概述

  第1关机器学习概述

B AD B BC

  第2关常见分类算法

#编码方式encoding=utf8

from sklearn.neighbors import KNeighborsClassifier

def knn(train_data,train_label,test_data):
    '''
    input:train_data用来训练的数据
          train_label用来训练的标签
          test_data用来测试的数据
    '''
    #********* Begin *********#开始填补空缺处代码
    knn = KNeighborsClassifier()
    #利用训练数据与标签对模型进行训练
    knn.fit(train_data, train_label)
    #对测试数据类别进行预测
    predict = knn.predict(test_data)
    #********* End *********#结束填补位置
    return predict

  第3关常见回归算法

#编码方式encoding=utf8
from sklearn.linear_model import LinearRegression

def lr(train_data,train_label,test_data):
    '''
    input:train_data用来训练的数据
          train_label用来训练的标签
          test_data用来测试的数据
    '''
    #********* Begin *********#开始填补空缺处代码
    lr = LinearRegression()
    #利用已知数据与标签对模型进行训练
    lr.fit(train_data, train_label)
    #对未知数据进行预测
    predict = lr.predict(test_data)
    #********* End *********#
    return predict

  第4关常见聚类算法

from sklearn.cluster import KMeans 

def kmeans(data):
    '''
    input:data需要进行聚类的数据
    '''
    # 假设我们想要将数据聚成3类,这个数字可以根据实际情况调整
    kmeans = KMeans(n_clusters=3, random_state=888)
    # 使用fit_predict一步完成模型训练和预测
    predict = kmeans.fit_predict(data)
    return predict  # 返回聚类结果

第五关实现KNN算法

import numpy as np

class kNNClassifier(object):
    def __init__(self, k):
        '''
        初始化函数
        :param k:kNN算法中的k
        '''
        self.k = k
        # 用来存放训练数据,类型为ndarray
        self.train_feature = None
        # 用来存放训练标签,类型为ndarray
        self.train_label = None

    def fit(self, feature, label):
        '''
        kNN算法的训练过程
        :param feature: 训练集数据,类型为ndarray
        :param label: 训练集标签,类型为ndarray
        :return: 无返回
        '''
        # 将传入的训练数据和标签保存在对象内部,以便后续的预测使用
        self.train_feature = np.array(feature)
        self.train_label = np.array(label)

    def predict(self, feature):
        '''
        kNN算法的预测过程
        :param feature: 测试集数据,类型为ndarray
        :return: 预测结果,类型为ndarray或list
        '''
        def _predict(test_data):
            # 计算测试数据与所有训练数据之间的欧氏距离
            distances = [np.sqrt(np.sum((test_data - vec) ** 2)) for vec in self.train_feature]
            # 获取距离最近的训练数据的索引
            nearest = np.argsort(distances)
            # 选取最近的 k 个邻居
            topK = [self.train_label[i] for i in nearest[:self.k]]
            votes = {}  # 用字典来记录每个类别的投票数
            result = None

            max_count = 0  # 用来记录最高票数
            for label in topK:
                if label in votes:
                    votes[label] += 1
                else:
                    votes[label] = 1
                # 更新最高票数和对应的类别
                if votes[label] > max_count:
                    max_count = votes[label]
                    result = label
            return result

        # 对测试集中的每个数据进行预测
        predict_result = [_predict(test_data) for test_data in feature]
        return predict_result

二、机器学习—线性回归

第1关简单线性回归与多元线性回归

第2关线性回归的正规方程解

import numpy as np

def mse_score(y_predict, y_test):
    '''
    input:y_predict(ndarray):预测值
          y_test(ndarray):真实值
    output:mse(float):mse损失函数值
    '''
    # 计算均方误差
    mse = np.mean((y_predict - y_test) ** 2)
    return mse

class LinearRegression:
    def __init__(self):
        '''初始化线性回归模型'''
        self.theta = None

    def fit_normal(self, train_data, train_label):
        '''
        input:train_data(ndarray):训练样本
              train_label(ndarray):训练标签
        '''
        # 在训练数据前添加一列1,对应theta0
        X_b = np.hstack([np.ones((len(train_data), 1)), train_data])
        # 使用正规方程求解theta
        self.theta = np.linalg.inv(X_b.T.dot(X_b)).dot(X_b.T).dot(train_label)

    def predict(self, test_data):
        '''
        input:test_data(ndarray):测试样本
        '''
        # 在测试数据前添加一列1,对应theta0
        X_b = np.hstack([np.ones((len(test_data), 1)), test_data])
        # 使用模型进行预测
        y_predict = X_b.dot(self.theta)
        return y_predict

第3关衡量线性回归的性能指标

import numpy as np

#mse
def mse_score(y_predict, y_test):
    mse = np.mean((y_predict - y_test) ** 2)
    return mse

#r2
def r2_score(y_predict, y_test):
    '''
    input:y_predict(ndarray):预测值
          y_test(ndarray):真实值
    output:r2(float):r2值
    '''
    # 计算R2分数
    ss_total = np.sum((y_test - np.mean(y_test)) ** 2)
    ss_residual = np.sum((y_test - y_predict) ** 2)
    r2 = 1 - (ss_residual / ss_total)
    return r2

class LinearRegression:
    def __init__(self):
        '''初始化线性回归模型'''
        self.theta = None

    def fit_normal(self, train_data, train_label):
        '''
        input:train_data(ndarray):训练样本
              train_label(ndarray):训练标签
        '''
        # 在训练数据前添加一列1,对应theta0
        X_b = np.hstack([np.ones((len(train_data), 1)), train_data])
        # 使用正规方程求解theta
        self.theta = np.linalg.inv(X_b.T.dot(X_b)).dot(X_b.T).dot(train_label)
        return self

    def predict(self, test_data):
        '''
        input:test_data(ndarray):测试样本
        '''
        # 在测试数据前添加一列1,对应theta0
        X_b = np.hstack([np.ones((len(test_data), 1)), test_data])
        # 使用模型进行预测
        y_predict = X_b.dot(self.theta)
        return y_predict

第4关scikit-learn线性回归实践 - 波斯顿房价预测

#encoding=utf8
#encoding=utf8

#********* Begin *********#
import pandas as pd
from sklearn.linear_model import LinearRegression

# 获取训练数据
train_data = pd.read_csv('./step3/train_data.csv')

# 获取训练标签
train_label = pd.read_csv('./step3/train_label.csv')
train_label = train_label['target']

# 获取测试数据
test_data = pd.read_csv('./step3/test_data.csv')

lr = LinearRegression()

# 训练模型
lr.fit(train_data, train_label)

# 获取预测标签
predict = lr.predict(test_data)

# 将预测标签写入csv
df = pd.DataFrame({'result': predict})
df.to_csv('./step3/result.csv', index=False)

#********* End *********#

三、机器学习 --- 模型评估、选择与验证

第1关:为什么要有训练集与测试集

第2关欠拟合与过拟合

第3关偏差与方差

第4关验证集与交叉验证

第5关衡量回归性能指标

第6关准确度的陷阱与混淆矩阵

import numpy as np

def confusion_matrix(y_true, y_predict):
    '''
    构建二分类的混淆矩阵,并将其返回
    :param y_true: 真实类别,类型为ndarray
    :param y_predict: 预测类别,类型为ndarray
    :return: shape为(2, 2)的ndarray
    '''

    # 定义计算混淆矩阵各元素的函数
    def TN(y_true, y_predict):
        return np.sum((y_true == 0) & (y_predict == 0))

    def FP(y_true, y_predict):
        return np.sum((y_true == 0) & (y_predict == 1))

    def FN(y_true, y_predict):
        return np.sum((y_true == 1) & (y_predict == 0))

    def TP(y_true, y_predict):
        return np.sum((y_true == 1) & (y_predict == 1))

    # 构建并返回混淆矩阵
    return np.array([
        [TN(y_true, y_predict), FP(y_true, y_predict)],
        [FN(y_true, y_predict), TP(y_true, y_predict)]
    ])

第7关精准率与召回率

import numpy as np

def precision_score(y_true, y_predict):
    '''
    计算精准率并返回
    :param y_true: 真实类别,类型为ndarray
    :param y_predict: 预测类别,类型为ndarray
    :return: 精准率,类型为float
    '''

    # 定义计算真正例(TP)和假正例(FP)的函数
    def TP(y_true, y_predict):
        return np.sum((y_true == 1) & (y_predict == 1))

    def FP(y_true, y_predict):
        return np.sum((y_true == 0) & (y_predict == 1))

    # 计算TP和FP
    tp = TP(y_true, y_predict)
    fp = FP(y_true, y_predict)

    # 计算精准率并返回
    try:
        return tp / (tp + fp)
    except:
        return 0.0

def recall_score(y_true, y_predict):
    '''
    计算召回率并返回
    :param y_true: 真实类别,类型为ndarray
    :param y_predict: 预测类别,类型为ndarray
    :return: 召回率,类型为float
    '''

    # 定义计算真正例(TP)和假负例(FN)的函数
    def FN(y_true, y_predict):
        return np.sum((y_true == 1) & (y_predict == 0))

    def TP(y_true, y_predict):
        return np.sum((y_true == 1) & (y_predict == 1))

    # 计算TP和FN
    tp = TP(y_true, y_predict)
    fn = FN(y_true, y_predict)

    # 计算召回率并返回
    try:
        return tp / (tp + fn)
    except:
        return 0.0

第8关F1 Score

import numpy as np

def f1_score(precision, recall):
    '''
    计算模型的F1分数并返回
    :param precision: 模型的精准率,类型为float
    :param recall: 模型的召回率,类型为float
    :return: 模型的f1 score,类型为float
    '''

    # 计算F1分数
    try:
        return 2 * precision * recall / (precision + recall)
    except:
        return 0.0

第9关ROC曲线与AUC

import numpy as np

def calAUC(prob, labels):
    '''
    计算AUC并返回
    :param prob: 模型预测样本为Positive的概率列表,类型为ndarray
    :param labels: 样本的真实类别列表,其中1表示Positive,0表示Negtive,类型为ndarray
    :return: AUC,类型为float
    '''

    # 将概率和标签组合并按概率排序
    f = list(zip(prob, labels))
    rank = [values2 for values1, values2 in sorted(f, key=lambda x: x[0])]
    
    # 获取正样本的排名列表
    rankList = [i + 1 for i in range(len(rank)) if rank[i] == 1]

    # 计算正负样本的数量
    posNum = sum(labels)
    negNum = len(labels) - posNum

    # 根据公式计算AUC
    auc = (sum(rankList) - (posNum * (posNum + 1)) / 2) / (posNum * negNum)
    return auc

第10关sklearn中的分类性能指标

from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score, roc_auc_score

def classification_performance(y_true, y_pred, y_prob):
    '''
    返回准确度、精准率、召回率、f1 Score和AUC
    :param y_true: 样本的真实类别,类型为`ndarray`
    :param y_pred: 模型预测出的类别,类型为`ndarray`
    :param y_prob: 模型预测样本为`Positive`的概率,类型为`ndarray`
    :return: 准确度、精准率、召回率、f1 Score和AUC,类型为tuple
    '''

    # 计算并返回各种性能指标
    return accuracy_score(y_true, y_pred), precision_score(y_true, y_pred), recall_score(y_true, y_pred), f1_score(y_true, y_pred), roc_auc_score(y_true, y_prob)

四、聚类性能评估指标

第1关外部指标

import numpy as np

def calc_JC(y_true, y_pred):
    '''
    计算并返回JC系数
    :param y_true: 参考模型给出的簇,类型为ndarray
    :param y_pred: 聚类模型给出的簇,类型为ndarray
    :return: JC系数
    '''

    def a(y_true, y_pred):
        result = 0
        for i in range(len(y_true)):
            for j in range(len(y_pred)):
                if i < j:
                    if y_true[i] == y_true[j] and y_pred[i] == y_pred[j]:
                        result += 1
        return result

    def b(y_true, y_pred):
        result = 0
        for i in range(len(y_true)):
            for j in range(len(y_pred)):
                if i < j:
                    if y_true[i] != y_true[j] and y_pred[i] == y_pred[j]:
                        result += 1
        return result

    def c(y_true, y_pred):
        result = 0
        for i in range(len(y_true)):
            for j in range(len(y_pred)):
                if i < j:
                    if y_true[i] == y_true[j] and y_pred[i] != y_pred[j]:
                        result += 1
        return result

    return a(y_true, y_pred) / (a(y_true, y_pred) + b(y_true, y_pred) + c(y_true, y_pred))

def calc_FM(y_true, y_pred):
    '''
    计算并返回FM指数
    :param y_true: 参考模型给出的簇,类型为ndarray
    :param y_pred: 聚类模型给出的簇,类型为ndarray
    :return: FM指数
    '''

    def a(y_true, y_pred):
        result = 0
        for i in range(len(y_true)):
            for j in range(len(y_pred)):
                if i < j:
                    if y_true[i] == y_true[j] and y_pred[i] == y_pred[j]:
                        result += 1
        return result

    def b(y_true, y_pred):
        result = 0
        for i in range(len(y_true)):
            for j in range(len(y_pred)):
                if i < j:
                    if y_true[i] != y_true[j] and y_pred[i] == y_pred[j]:
                        result += 1
        return result

    def c(y_true, y_pred):
        result = 0
        for i in range(len(y_true)):
            for j in range(len(y_pred)):
                if i < j:
                    if y_true[i] == y_true[j] and y_pred[i] != y_pred[j]:
                        result += 1
        return result

    return a(y_true, y_pred) / np.sqrt((a(y_true, y_pred) + b(y_true, y_pred)) * (a(y_true, y_pred) + c(y_true, y_pred)))

def calc_Rand(y_true, y_pred):
    '''
    计算并返回Rand指数
    :param y_true: 参考模型给出的簇,类型为ndarray
    :param y_pred: 聚类模型给出的簇,类型为ndarray
    :return: Rand指数
    '''

    def a(y_true, y_pred):
        result = 0
        for i in range(len(y_true)):
            for j in range(len(y_pred)):
                if i < j:
                    if y_true[i] == y_true[j] and y_pred[i] == y_pred[j]:
                        result += 1
        return result

    def d(y_true, y_pred):
        result = 0
        for i in range(len(y_true)):
            for j in range(len(y_pred)):
                if i < j:
                    if y_true[i] != y_true[j] and y_pred[i] != y_pred[j]:
                        result += 1
        return result

    m = len(y_true)
    return (2 * (a(y_true, y_pred) + d(y_true, y_pred))) / (m * (m - 1))

第2关内部指标

import numpy as np

def calc_DBI(feature, pred):
    '''
    计算并返回DB指数
    :param feature: 待聚类数据的特征,类型为`ndarray`
    :param pred: 聚类后数据所对应的簇,类型为`ndarray`
    :return: DB指数
    '''

    #********* Begin *********#
    label_set = np.unique(pred)
    mu = {}
    label_count = {}
    
    #计算簇的中点
    for label in label_set:
        mu[label] = np.zeros([len(feature[0])])
        label_count[label] = 0

    for i in range(len(pred)):
        mu[pred[i]] += feature[i]
        label_count[pred[i]] += 1

    for key in mu.keys():
        mu[key] /= label_count[key]

    #算数据到中心点的平均距离
    avg_d = {}
    for label in label_set:
        avg_d[label] = 0

    for i in range(len(pred)):
        avg_d[pred[i]] += np.sqrt(np.sum(np.square(feature[i] - mu[pred[i]])))

    for key in mu.keys():
        avg_d[key] /= label_count[key]

    #算两个簇的中点之间的距离
    cen_d = []
    for i in range(len(label_set)-1):
        t = {'c1':label_set[i], 'c2':label_set[i+1], 'dist':np.sqrt(np.sum(np.square(mu[label_set[i]] - mu[label_set[i+1]])))}
        cen_d.append(t)

    dbi = 0
    for k in range(len(label_set)):
        max_item = 0
        for i in range(len(label_set)):
            for j in range(i, len(label_set)):
                for p in range(len(cen_d)):
                    if cen_d[p]['c1'] == label_set[i] and cen_d[p]['c2'] == label_set[j]:
                        d = (avg_d[label_set[i]] + avg_d[label_set[j]])/cen_d[p]['dist']
                        if d > max_item:
                            max_item = d
        dbi += max_item
    dbi /= len(label_set)
    return dbi
    #********* End *********#


def calc_DI(feature, pred):
    '''
    计算并返回Dunn指数
    :param feature: 待聚类数据的特征,类型为`ndarray`
    :param pred: 聚类后数据所对应的簇,类型为`ndarray`
    :return: Dunn指数
    '''

    #********* Begin *********#
    label_set = np.unique(pred)
    min_d = []
    for i in range(len(label_set)-1):
        t = {'c1': label_set[i], 'c2': label_set[i+1], 'dist': np.inf}
        min_d.append(t)

    #计算两个簇之间的最短距离
    for i in range(len(feature)):
        for j in range(i, len(feature)):
            for p in range(len(min_d)):
                if min_d[p]['c1'] == pred[i] and min_d[p]['c2'] == pred[j]:
                    d = np.sqrt(np.sum(np.square(feature[i] - feature[j])))
                    if d < min_d[p]['dist']:
                        min_d[p]['dist'] = d

    #计算同一个簇中距离最远的样本对的距离
    max_diam = 0

    for i in range(len(feature)):
        for j in range(i, len(feature)):
            if pred[i] == pred[j]:
                d = np.sqrt(np.sum(np.square(feature[i] - feature[j])))
                if d > max_diam:
                    max_diam = d

    di = np.inf
    for i in range(len(label_set)):
        for j in range(i, len(label_set)):
            for p in range(len(min_d)):
                d = min_d[p]['dist']/max_diam
                if d < di:
                    di = d
    return d

第3关sklearn中的聚类性能评估指标

from sklearn.metrics.cluster import fowlkes_mallows_score, adjusted_rand_score

def cluster_performance(y_true, y_pred):
    '''
    返回Rand指数和FM指数
    :param y_true:参考模型的簇划分,类型为`ndarray`
    :param y_pred:聚类模型给出的簇划分,类型为`ndarray`
    :return: Rand指数,FM指数
    '''

    #********* Begin *********#
    return fowlkes_mallows_score(y_true, y_pred), adjusted_rand_score(y_true, y_pred)
    #********* End *********#

七、机器学习—逻辑回归

第1关逻辑回归核心思想

#encoding=utf8
import numpy as np

def sigmoid(t):
    '''
    完成sigmoid函数计算
    :param t: 负无穷到正无穷的实数
    :return: 转换后的概率值
    :可以考虑使用np.exp()函数
    '''
    # 使用np.exp()函数计算e的t次方,然后除以1加上e的t次方
    return 1 / (1 + np.exp(-t))

第2关逻辑回归的损失函数

A ACD AB D

第3关梯度下降

def gradient_descent(initial_theta, eta=0.05, n_iters=1000, epslion=1e-8):
    '''
    梯度下降
    :param initial_theta: 参数初始值,类型为float
    :param eta: 学习率,类型为float
    :param n_iters: 训练轮数,类型为int
    :param epslion: 容忍误差范围,类型为float
    :return: 训练后得到的参数
    '''
    theta = initial_theta
    i = 0
    while i < n_iters:
        i += 1
        gradient = 2 * (theta - 3)
        if abs(gradient) < epslion:
            break
        theta = theta - eta * gradient
    return theta

# 调用梯度下降函数
theta = gradient_descent(initial_theta=0)

后面的暂时不写

前面四个时必须写的其他等我闲了再写

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1549743.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

R 生存分析3:Cox等比例风险回归及等比例风险检验

虽然Kaplan-Meier分析方法目前应用很广&#xff0c;但是该方法存在一下局限: 对于一些连续型变量&#xff0c;必须分类下可以进行生存率对比 是一种单变量分析&#xff0c;无法同时对多组变量进行分析 是一种非参数分析方法&#xff0c;必须有患者个体数据才能进行分析 英国…

春秋云境CVE-2023-27179

简介 GDidees CMS v3.9.1及更低版本被发现存在本地文件泄露漏洞&#xff0c;漏洞通过位于 /_admin/imgdownload.php 的 filename 参数进行利用。 正文 进入靶场发现没有什么可以利用的地方&#xff0c;那么就按照靶场提示来&#xff0c;直接访问/_admin/imgdownload.php 打开…

鸿蒙雄起!风口就在当下,你如何抉择?

近年来&#xff0c;华为自主研发的鸿蒙操作系统&#xff08;HarmonyOS&#xff09;引起了广泛的关注和讨论。鸿蒙系统不仅标志着华为在软件领域的一次重大突破&#xff0c;也预示着全球智能设备市场格局的潜在变化。本文将深入探讨鸿蒙系统的兴起、其在市场上的表现以及对程序员…

【SQL】1633. 各赛事的用户注册率(COUNT函数 表达式用法)

题目描述 leetcode题目&#xff1a;1633. 各赛事的用户注册率 Code select contest_id, round(count(*)/(select count(*) from Users)*100, 2) as percentage from Register group by contest_id order by percentage desc, contest_id ascCOUNT()函数 COUNT函数用法&#…

k8s入门到实战(十一)—— DaemonSet详细介绍及使用

DaemonSet 说明 是个 Pod 控制器能够确保 k8s 的所有节点都运行一个相同的 pod 副本,假设这个 pod 名称为 pa 当增加 node 节点时&#xff0c;这个节点会自动创建一个 pa副本当删除 node 节点时&#xff0c;pa 副本会自动删除 删除 daemonset 会删除它们创建的 pod 使用场景 需…

PyQt:实现自定义绘制pyqtgraph折线图中的symbol图标

一、写在前面 1.关于symbol的官方文档说明&#xff1a;symbol 2.我自己绘制的自定义symbol符号&#xff0c;如下图&#xff1a;一个在坐标轴上移动的“小货车” 2.默认可以选择的有以下多种symbol符号 但最后一项也说明了&#xff1a;支持QPainterPath绘制的自定义符号形状。…

案例分析-IEEE 754浮点标准

案例一&#xff1a; 请分析IEEE 754双精度浮点数规格化数的表示范围。 案例二&#xff1a; 规格化浮点数的Bias为什么采用2k-1-1而不是2k-1​&#xff1f;非规范数的指数E1-Bias而不是0-Bias&#xff1f; &#xff08;1&#xff09; ① bias 127时 E e - 127 &#xff08;00…

0.96寸OLED屏调试 ----(一)

所需设备&#xff1a; 1、USB 转 SPI I2C 适配器&#xff1b;内附链接 2、0.96寸OLED显示模块&#xff1b; 备注&#xff1a;专业版、升级版都适用&#xff1b; 首先介绍一下OLED显示模块&#xff0c;SSD1306是一款OLED驱动芯片&#xff0c;拥有最大128*64像素支持&#xff…

卷积变体-----分组卷积、深度可分离卷积、膨胀卷积

文章目录 一、分组卷积1.1 概述1.2 参数量变换 二、深度可分离卷积2.1 概述2.2 计算 三、膨胀卷积 一、分组卷积 1.1 概述 1. 分组卷积&#xff08;Group convolution &#xff09;最早在AlexNet中出现&#xff0c;由于当时的硬件资源有限&#xff0c;训练AlexNet时卷积操作不…

Axure中后台系统原型模板,B端页面设计实例,高保真高交互54页

作品概况 页面数量&#xff1a;共 50 页&#xff08;长期更新&#xff09; 兼容版本&#xff1a;Axure RP 9/10&#xff0c;不支持低版本 应用领域&#xff1a;网页模板、网站后台、中台系统、B端系统 作品特色 本品为「web中后台系统页面设计实例模板」&#xff0c;默林原创…

聊聊CSS

css 的介绍 学习目标 能够知道css的作用 1. css 的定义 css(Cascading Style Sheet)层叠样式表&#xff0c;它是用来美化页面的一种语言。 没有使用css的效果图 使用css的效果图 2. css 的作用 美化界面, 比如: 设置标签文字大小、颜色、字体加粗等样式。 控制页面布局, 比如…

逐步学习Go-协程goroutine

参考&#xff1a;逐步学习Go-协程goroutine – FOF编程网 什么是线程&#xff1f; 简单来说线程就是现代操作系统使用CPU的基本单元。线程基本包括了线程ID&#xff0c;程序计数器&#xff0c;寄存器和线程栈。线程共享进程的代码区&#xff0c;数据区和操作系统的资源。 线…

jMeter学习

一. JMeter介绍 1. 什么是JMeter&#xff1f; Apache JMeter™ 应用程序是开源软件&#xff0c;一个 100% 纯 Java 应用程序&#xff0c;旨在加载测试功能行为和测量性能 。它最初是为测试 Web 应用程序而设计的&#xff0c;但后来扩展到其他测试功能。 2. JMeter能做啥&#x…

RabbitMQ(简单模式)

2种远程服务调用 1openFeign&#xff1a; 优点&#xff1a;能拿到被调用的微服务返回的数据&#xff0c;系统系耦度高&#xff0c;系统稳定。 缺点&#xff1a;同步调用&#xff0c;如果有很多服务需要被调用&#xff0c;耗时长。 MQ,消息队列&#xff0c;RabbitMQ是消息we…

数据可视化-ECharts Html项目实战(8)

在之前的文章中&#xff0c;我们学习了如何设置散点图涟漪效果与仪表盘动态指针效果。想了解的朋友可以查看这篇文章。同时&#xff0c;希望我的文章能帮助到你&#xff0c;如果觉得我的文章写的不错&#xff0c;请留下你宝贵的点赞&#xff0c;谢谢 今天的文章&#xff0c;会…

标定系列——预备知识-OpenCV中实现Rodrigues变换的函数(二)

标定系列——预备知识-OpenCV中实现Rodrigues变换的函数&#xff08;二&#xff09; 说明记录 说明 简单介绍罗德里格斯变换以及OpenCV中的实现函数 记录

Machine Learning机器学习之向量机(Support Vector Machine,SVM)

目录 前言 算法提出背景&#xff1a; 核心思想&#xff1a; 原理&#xff1a; 应用领域&#xff1a; 一、支持向量机分类&#xff08;主要变体&#xff09; 二、构建常见的支持向量机模型 基于Python 中的 Scikit-learn 库构建线性支持向量机&#xff08;SVM&#xff09; 三、向…

蓝桥杯刷题之路径之谜

题目来源 路径之谜 不愧是国赛的题目 题意 题目中会给你两个数组&#xff0c;我这里是分别用row和col来表示 每走一步&#xff0c;往左边和上边射一箭&#xff0c;走到终点的时候row数组和col数组中的值必须全部等于0这个注意哈&#xff0c;看题目看了半天&#xff0c;因为…

【GPU系列】选择最适合的 CUDA 版本以提高系统性能

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

NVIDIA 发布 Project GR00T 人形机器人基础模型和 Isaac 机器人平台重大更新

系列文章目录 前言 Isaac 机器人平台现可为开发者提供全新的机器人训练仿真器、Jetson Thor 机器人计算机、生成式 AI 基础模型和由 CUDA 加速的感知和操作库。 Project GR00T 是一种多模态人形机器人通用基础模型&#xff0c;作为机器人的大脑&#xff0c;使它们能够学习技能…