【python】数据预处理:分位数归一化 Quantile Normalization + INSCODE AI创作助手测试

文章目录

  • 写在前面
  • 标准化/归一化
    • z-score标准化示例
  • python模块qnorm实现分位数归一化
  • R代码实现分位数归一化
  • 分位数归一化 - NSCODE AI创作助手的回答
    • *Q1:Quantile Normalization是什么?*
    • *Q2-1: 什么时候用Quantile normalization?*
    • *Q2-2: 什么时候做Quantile normalization?*
    • *Q3:为什么要做Quantile Normalization?*
    • *Q4-1: 如何做Quantile normalization?*
    • *Q4-2: 如何用python做Quantile Normalization?*
  • 可视化分位数归一化处理前后发生的变化
  • 什么时候该用/不该用分位数归一化
  • 其他ChatGPT测试

写在前面

这里主要了解一下分位数归一化(Quantile Normalization, QN。如无特殊说明时,本文中的QN作为分位数归一化的缩写。

Quantile Normalization 直接翻译是 分位数归一化,但也有翻译为分位数标准化。笔者理解是按直译叫分位数归一化,但是按数据的处理方式,应该叫分位数标准化,按英文的话就一种:Quantile Normalization。之所以有标准化和归一化两种说法,是因为它们是两种不同的处理方式。

本文暂统一名称叫分位数归一化(QN)。

Quantile Normalization 定义来自如下文献:
在这里插入图片描述

标准化/归一化

标准化(standardization)、归一化(normalization)两者总是被混着叫,实际是在做什么处理呢?

先看下Python库中的关于预处理的一些包:
在这里插入图片描述
其中包括了:scaling(缩放), centering(中心化), normalization(归一化), binarization(二值化)。

对于标准化和归一化对应的常用的模块:

  • 标准化 standardization:py模块 StandardScaler 是常用的标准化数据处理,对应z-score标准化公式: z = x − μ s z=\frac{x-\mu}{s} z=sxμ(其中, μ \mu μ是训练样本的均值, s s s是训练样本的标准差)。将原始数据转换为均值为0,方差为1的新数据,也是把数据缩放(scaling)到特定区间上。该处理从公式计算上解读为:当前数据比总体均值多了几个标准差;从数据整体上解读为:把原数据标准化缩放为服从标准正态分布的数据。

  • 归一化 normalization:py模块 MinMaxScaler是比较常用的归一化方法:min-max归一化, x ∗ = x i − x m i n x m a x − x m i n x^*=\frac{x_i− x_{min}}{x_{max} − x_{min}} x=xmaxxminxixmin

z-score标准化示例

# sklear包中的zscore
from sklearn.preprocessing import StandardScaler
data = [[0, 0], [0, 0], [1, 1], [1, 1]]
scaler = StandardScaler()
print(scaler.fit(data))
scaler.fit_transform(data)

使用scipy包中的zscore,对dataframe数据直接进行zscore标准,好处是标准化后的index/columns还在,而使用sklear的标准化处理后,返回的是数组array。[chatGPT]:

import pandas as pd
from scipy.stats import zscore# 创建训练数据的示例DataFrame
train_data = {'A': [1, 2, 3, 4, 5],'B': [10, 20, 30, 40, 50],'C': [100, 200, 300, 400, 500]}
train_df = pd.DataFrame(train_data)# 创建测试数据的示例DataFrame
test_data = {'A': [6, 7, 8, 9, 10],'B': [60, 70, 80, 90, 100],'C': [600, 700, 800, 900, 1000]}
test_df = pd.DataFrame(test_data)# 对训练数据进行Z-score标准化
train_df_standardized = train_df.apply(zscore)# 使用训练数据的均值和标准差对测试数据进行标准化(注意使用训练数据的统计量)
test_df_standardized = (test_df - train_df.mean()) / train_df.std()print("训练数据标准化结果:")
print(train_df_standardized)
print("\n测试数据标准化结果:")
print(test_df_standardized)

python模块qnorm实现分位数归一化

仔细看Python的sklearn库中(# 标准化/归一化 部分的截图),会发现这里没有分位数归一化的包。是的,sklearn里没有QN。需要先安装qnorm(qnorm安装包官网),安装命令为:pip install qnorm。使用示例如下:

import pandas as pd
import qnormdf = pd.DataFrame({'C1': {'A': 5, 'B': 2, 'C': 3, 'D': 4},'C2': {'A': 4, 'B': 1, 'C': 4, 'D': 2},'C3': {'A': 3, 'B': 4, 'C': 6, 'D': 8}})print(qnorm.quantile_normalize(df, axis=1))

执行后可得到:
在这里插入图片描述

R代码实现分位数归一化

最初测试使用了R代码,在“INSCODE AI创作助手”助手的默认实现方式中也使用了R。(做分位数归一化处理可能用R的比较多)

代码中使用到R包preprocessCore

df <- data.frame(one=c(5,2,3,4),two=c(4,1,4,2),three=c(3,4,6,8)
)
rownames(df) <- c('f1', 'f2', 'f3', 'f4')dfpreprocessCore::normalize.quantiles(x=as.matrix(df))

执行后得到:
在这里插入图片描述

分位数归一化 - NSCODE AI创作助手的回答

上面的代码直接执行就能得到相应的数据,下面是通过“NSCODE AI创作助手”了解更多分位数归一化相关的知识。

想了解一个概念最好的方式,就是通过提问并回答这个3W1H:Waht/Why/When/How … the “A”?

  1. 什么是分位数归一化(What)
  2. 为什么要做分位数归一化(Why)
  3. 什么时候做分位数归一化(When)
  4. 怎么做分位数归一化(How)

试试“INSCODE AI创作助手”给出的一些解答:

提问示例:
在这里插入图片描述

来自 InsCode AI创作助手 的回答:(结果还是挺出乎意料的)

Q1:Quantile Normalization是什么?

Quantile normalization是一种用于处理高通量基因表达数据的方法。它通过对所有样本的数据进行排序,并将排序后的数据进行归一化,从而消除任何来自各个样本之间的数据不一致性的影响。基本思路是将每个样本的数据值按照从小到大的顺序进行排列,然后将排列后的数据值替换为对应分位数(例如,对于一个样本,将第10个最小值替换为第10个最小分位数)。这个过程使得每个样本的数据分布相同,从而可以进行更好的比较和综合分析。

Q2-1: 什么时候用Quantile normalization?

Quantile normalization是一种数据预处理方法,通常在基因表达数据中使用。当数据集中存在分布不均的情况时,使用Quantile normalization可以将数据集中的样本在数值分布上进行对齐,以消除由于样本差异而带来的数据偏差。因此,当你想要在基因表达数据分析中对不同样本的基因表达数据进行比较时,可能需要使用Quantile normalization来消除样本之间的差异,以确保数据的准确性和可靠性。

Q2-2: 什么时候做Quantile normalization?

Quantile normalization通常在对基因表达数据进行比较分析时使用。具体地说,当你有多个实验组(每组都包含多个样本)且你想比较它们之间的基因表达水平时,通常会使用Quantile normalization进行数据标准化,以消除混杂因素(例如实验批次,RNA提取和扫描阅读器)对实验结果的影响。这样可以使得样本之间的差异仅仅是由于生物学的差异,而不是技术方面的差异所引起的。因此,Quantile normalization 常被用于微阵列和RNA测序数据分析,以减少技术方面的差异对于样本之间的比较所带来的影响。

Q3:为什么要做Quantile Normalization?

Quantile normalization是一种数据标准化方法,它的目的是通过调整数据的排名顺序来消除实验中不同样本之间的技术差异,使得数据能够更好地比较和分析。
在高通量基因表达研究中,由于实验过程、实验条件等因素的不同,不同样本之间的基因表达量数据往往存在一定的不一致性。如果直接进行差异分析或聚类分析等,可能会将这些技术差异误认为是生物差异,导致分析结果出现偏差。因此,需要对数据进行标准化处理,消除这些技术差异。
Quantile normalization的做法是将不同样本中基因表达量的排名顺序进行统一,使得各个样本的数据分布在相同的位置上。这样可以消除技术差异,让不同样本之间成为可比较的数据,提高了分析结果的可信度和稳定性。

Q3问题重新生成:(得到类似但不同的结果)
Quantile normalization是一种常用的数据标准化方法,主要应用于高通量基因表达数据分析中。做Quantile normalization的目的是消除样本之间的技术变异(如批次效应、不同实验处理等)与生物变异对基因表达量的影响,使得样本间的基因表达值具有可比性。
Quantile normalization的具体步骤是将每个样本的基因表达值按照从小到大的顺序排列,然后将排名相同的基因表达值分配给相应的样本,从而使得每个基因在不同样本中的表达值的分布均匀,且每个样本的基因表达量分布保持不变。
通过Quantile normalization,我们可以快速、有效地比较不同样本之间的基因表达量差异,从而有助于进一步发现基因调控机制、诊断疾病等方面的研究。

Q4-1: 如何做Quantile normalization?

Quantile normalization是一种数据标准化方法,用于将不同样本之间的数据分布进行比较和统一。以下是基于R语言的实现方法:

  1. 导入需要进行标准化处理的数据集。
  2. 对数据集进行排序。
data_sorted <- apply(data, 2, sort)
  1. 计算每一行的分位数。
quantiles <- apply(data_sorted, 1, quantile, probs = seq(0, 1, length = nrow(data) + 1))
  1. 对数据集进行标准化。
data_norm <- apply(data, 2, function(x) {rank <- order(x)quantiles[rank]
})
  1. 对标准化后的数据进行检查。
summary(apply(data_norm, 2, quantile, probs = seq(0, 1, length = nrow(data) + 1)))

以上就是Quantile Normalization的基本实现方法。

对Q4问题竟然直接给出代码的示例还是有些惊喜的,代码是直接实现的,我以为会直接调用归一化处理的R包:preprocessCore,至于代码准确性还有待测试。我还是希望用Python给出答案,就发出提问:

Q4-2: 如何用python做Quantile Normalization?

Quantile normalization是一种常见的数据预处理技术,用于将不同样本或实验的数据进行标准化,使得它们具有相同的分布。下面是一个用Python实现Quantile Normalization的示例代码:

import numpy as np
from scipy.stats import rankdatadef quantile_normalize(data):# 对每一列数据进行排序sorted_data = np.sort(data, axis=0)# 计算每一行的分位数row_quantiles = np.mean(sorted_data, axis=1)# 对每一列数据进行排序,并将其映射到对应的分位数rank_data = rankdata(data, axis=0)mapped_data = np.zeros_like(data)for i in range(data.shape[1]):mapped_data[:, i] = row_quantiles[rank_data[:, i]-1]return mapped_data

使用示例:

# 生成随机数据
data = np.random.rand(10, 5)# 将数据进行Quantile Normalization
normalized_data = quantile_normalize(data)

该函数输入一个矩阵数据,输出一个Quantile Normalization后的矩阵。函数首先对矩阵的每一列进行排序,然后计算每一行的分位数。接着,对于每一列的数据,映射到对应的分位数。最后,输出Quantile Normalization后的矩阵。

python代码比较意外的是还添加了中文注释,不禁有些感叹自己也不一定能短时间写出这些代码。与R脚本相同,并没有使用包,而是根据QN的原理直接实现,至于代码准确性还是需要细节上的修改:
在这里插入图片描述
报错应该是在映射对应的分位数时错误,报错原因是根据索引获取元素时,索引应该是整数,这里rankdata输出的值是浮点型。

根据报错调整代码:

import numpy as np
from scipy.stats import rankdatadef quantile_normalize(data):# 对每一列数据进行排序sorted_data = np.sort(data, axis=0)# 计算每一行的分位数row_quantiles = np.mean(sorted_data, axis=1)# 对每一列数据进行排序,并将其映射到对应的分位数rank_data = rankdata(data, axis=0)mapped_data = np.zeros_like(data, dtype=float)  #【修改】初始化指定数据类型为浮点型for i in range(data.shape[1]):# mapped_data[:, i] = row_quantiles[rank_data[:, i]-1]mapped_data[:, i] = row_quantiles[[int(i) for i in rank_data[:, i]-1]]  # 【修改】索引为整型return mapped_data

注意:代码中,当一列(某样本)出现相同值(基因表达值相同)时的排位问题,直接按计算排位均值后下取整数来获取对应值。具体来说:某列有n个相同数值,应排位为并列第m个,此时rankdata对这n个数的排位都是: m + ( m + 1 ) + . . . + ( m + n − 1 ) n \frac{m+(m+1)+...+(m+n-1)}{n} nm+(m+1)+...+(m+n1),比如,有2个数都排位第3个,则在rankdata排位为: 3 + 4 2 = 3.5 \frac{3+4}{2}=3.5 23+4=3.5,代码中取整(int是下取整),则为3;若有3个数都排位第3个,则在rankdata排位为: 3 + 4 + 5 2 = 3 \frac{3+4+5}{2}=3 23+4+5=3,代码中取整,则为排位取3。

但是, 实际排位中,对于相同的值,使用的是排位后对应值的均值(而不是排位的均值)。也就是上面代码还需要进一步完善:对相同值的排位问题

上面调整后的代码执行结果:

在这里插入图片描述

可视化分位数归一化处理前后发生的变化

先直观得看几个示例QN前后的结果,输入数据:

import pandas as pd
import qnorm
df1 = pd.DataFrame({'C1': {'A': 5, 'B': 2, 'C': 3, 'D': 4},'C2': {'A': 6, 'B': 1, 'C': 7, 'D': 9},'C3': {'A': 3, 'B': 4, 'C': 6, 'D': 8}})
dfn1 = qnorm.quantile_normalize(df1, axis=1)df2 = pd.DataFrame({'C1': {'A': 5, 'B': 2, 'C': 3, 'D': 4},'C2': {'A': 4, 'B': 1, 'C': 4, 'D': 2},'C3': {'A': 3, 'B': 4, 'C': 6, 'D': 8}})
dfn2 = qnorm.quantile_normalize(df2, axis=1)df3 = pd.DataFrame({'C1': {'A': 5, 'B': 2, 'C': 3, 'D': 4},'C2': {'A': 4, 'B': 1, 'C': 4, 'D': 4},'C3': {'A': 3, 'B': 4, 'C': 6, 'D': 8}})dfn3 = qnorm.quantile_normalize(df3, axis=1)

在这里插入图片描述
可视化QN前后的数据:

import matplotlib.pyplot as pltfig, axs = plt.subplots(3, 2)
plt.rcParams.update({'font.size':5})
i = 0
for df, dfn in zip([df1, df2, df3], [dfn1, dfn2, dfn3]):axs[i, 0].scatter(range(len(df.T['A'])), df.T['A'], label='A')axs[i, 0].scatter(range(len(df.T['B'])), df.T['B'], label='B')axs[i, 0].scatter(range(len(df.T['C'])), df.T['C'], label='C')axs[i, 0].scatter(range(len(df.T['D'])), df.T['D'], label='D')axs[i, 0].legend(loc='upper left', shadow=True)axs[i, 0].set_xticks([0, 1, 2], [1, 2, 3])axs[i, 1].scatter(range(len(dfn.T['A'])), dfn.T['A'])axs[i, 1].scatter(range(len(dfn.T['B'])), dfn.T['B'])axs[i, 1].scatter(range(len(dfn.T['C'])), dfn.T['C'])axs[i, 1].scatter(range(len(dfn.T['D'])), dfn.T['D'])axs[i, 1].set_xticks([0, 1, 2], [1, 2, 3])i += 1fig.tight_layout()
plt.show()

图分两列,左侧一列为原始数据,右侧一列分位数归一化(QN)后的数据。从原始数据到QN后的数据,可以发现,右侧图中每个样本(一列)的4个数据的排列顺序没有发生变化。(注意:有的看起来是<4个数据,是因为原始数据有相同的值,点重叠了)

在这里插入图片描述
手动推算一遍会更理解分位数归一化的基本思路:将每个样本的数据值按照从小到大的顺序进行排列,然后将排列后的数据值替换为对应分位数。

分位数归一化方法:http://bmbolstad.com/stuff/qnorm.pdf

step1: 每个样本的feature按从小到大排序;
step2: 与原始数据对应,获取排位后的序号(rank i/ii/iii/iv);
step3: 计算从小到大排序之后每个featrue的算术平均数;
step4: 将step2中数据排位替换为step3中排位对应的算术平均数;

在这里插入图片描述

什么时候该用/不该用分位数归一化

(参考:http://www.bio-info-trainee.com/2043.html)

虽然前面对“INSCODE AI创作助手”的提问也有类似什么时候用QN,但是概况性回答了一些QN应用场景,没有很具体或专业的表述。有一篇文献中专门研究了什么时候使用分位数归一化:文献pdf

在这里插入图片描述
该文献中给出了QN的使用策略:

在这里插入图片描述

【翻译】:(没有仔细研读文献,翻译谨慎参考)

  1. 组内方差小、组间方差小(变异小)→ 技术变化小,无全局变化 → 可使用QN(但是没有必要)
  2. 组内方差大、组间方差小(变异小)→ 技术变化大或组内批次效应,无全局变化 → 使用QN
  3. 组内方差小、组间方差大(变异大)→ 【只用原始数据不能检测到差异】→ 将 检测技术 和 生物变异 导致的全局差异
    1)组间全局技术差异或批次效应 → 使用QN
    2)组间全局生物学差异 → 不使用QN

文献中开发了quantro包:

R包quantro是:提出了一个数据驱动的方法来测试全局标准化方法的假设。证明了文献方法(quantro)的效用,通过将其应用到多个基因的表达和DNA甲基化,并显示全局标准化方法时的例子是不合适的。

其他ChatGPT测试

ChatGPT:https://chat2.jinshutuan.com/

在这里插入图片描述

  • ps: Q1问题输入错误:“使用"->“时候”。但是回答中提到“QN可能过分平滑数据”,又追问了一个问题。
  • 修改Q1问题后,结果答复也不相同:
    在这里插入图片描述
  • 同样提问如何用python实现,答复中海介绍QN的大致步骤,再给出代码示例:(待测试)
    在这里插入图片描述

【2023-05-31】初版;
【2023-06-05】测试其他ChatGPT回答。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

解决Postman发起请求一直转圈加载没有反应的问题

问题描述 Postman像下面这样一直在发起请求&#xff0c;等待响应 可能的原因 路径写错了&#xff0c;找不到路径存在跨域问题 第一个问题很容易排查&#xff0c;这里说下第二个问题&#xff0c;跨域问题通常有两种解决方案&#xff0c;如下&#xff1a; (1)CORS技术 : 现…

vite首次打开界面加载慢问题/解决

写在前面 网上都说vite要比webpack快&#xff0c;但个人感受&#xff0c;默认情况下, vite项目的启动确实比webpack快&#xff0c;但如果某个界面是首次进入&#xff0c;且依赖比较多/比较复杂的话&#xff0c;那就会比较慢了。 这篇文章就是用来记录&#xff0c;关于vite慢的…

【机器学习 吴恩达】2022课程笔记(持续更新)

一、机器学习 1.1 机器学习定义 计算机程序从经验E中学习&#xff0c;解决某一任务T&#xff0c;进行某一性能P&#xff0c;通过P测定在T上的表现因经验E而提高 eg&#xff1a;跳棋程序 E&#xff1a; 程序自身下的上万盘棋局 T&#xff1a; 下跳棋 P&#xff1a; 与新对手下…

AutoCV番外:Transformer

目录 Transformer注意事项一、2023/5/16更新前言1. Self-attention1.1 前置知识1.2 Self-attention机制1.3 矩阵乘法角度理解1.4 Multi-head Self-attention1.5 Positional Encoding1.6 Many application 2. Transformer2.1 前置知识2.2 Encoder2.3 AT Decoder2.4 NAT Decoder2…

Transformer算法解读(self-Attention/位置编码/多头注意力/掩码机制/QKV/Transformer堆叠/encoder/decoder)

本文主要从工程应用角度解读Transformer&#xff0c;如果需要从学术或者更加具体的了解Transformer&#xff0c;请参考这篇文章。 目录 1 自然语言处理 1.1 RNN 1.2 Transformer 1.3 传统的word2vec 2 Attention 2.1 Attention是什么意思 2.2 self-Attention是什么 2…

AI|用过的AI工具都给你整理好了

AI&#xff5c;用过的AI工具都给你整理好了 最近两周冷静下来了&#xff0c;而且个人状况因为二阳有所影响&#xff0c;没有过多关注这些AI工具&#xff1b;前两天给公司伙伴分享的契机&#xff0c;整理了一下这两个月用过的一些AI工具&#xff0c;部分是日常工作也在使用的&a…

GPT提示词系统学习-第一课-你竟然想不到一个3位数乘法GPT会算错的原因

开篇 在我这个系统的开篇“GPT使我变成超人”中说过,什么样的人使用AI才是起到决定作用的。AI只是工具,它不是万能。使用的人决定了AI可以带什么样的效果。一个很强的人当使用GPT时会形成1+1>2的效果。 因此,提示词的系统化学习是非常重要。这一门课是任何目前国内市面…

【前沿技术】文心一言 PK Chat Gpt

目录 写在前面 一、文心一言 二、Chat GPT 三、对比 四、总结 写在前面 随着人工智能技术的不断发展和普及&#xff0c;越来越多的智能应用走入了人们的日常生活&#xff0c;如智能语音助手、智能客服、机器翻译等等。在这些应用中&#xff0c;自然语言生成&#xff08;…

【对比】文心一言对飚ChatGPT实操对比体验

前言 &#x1f34a;缘由 百度【文心一言】体验申请通过 本狗中午干饭时&#xff0c;天降短信&#xff0c;告知可以体验文心一言&#xff0c;苦等一个月的实操终于到来。心中这好奇的对比心理油然而生&#xff0c;到底是老美的【ChatGPT】厉害&#xff0c;还是咱度娘的【文心一…

ChatGLM ptuning 的实战方案

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法…

Vicuna-13B云服务器部署

Vicuna概述 Vicuna由一群主要来自加州大学伯克利分校的研究人员推出&#xff0c;仍然是熟悉的配方、熟悉的味道。Vicuna同样是基于Meta开源的LLaMA大模型微调而来&#xff0c;它的训练数据是来自ShareGPT上的7万多条数据&#xff08;ShareGPT一个分享ChatGPT对话的谷歌插件&am…

Chat-GLM 详细部署(GPU显存>=12GB)

建议配置: ( Windows OS 11 部署 )CPU-i7 13700F ~ 13700KF RAM: 16GB DDR4 GPU: RTX3080(12G) 安装 conda: 1. 下载安装 miniconda3 &#xff1a; https://docs.conda.io/en/latest/miniconda.html conda是一个包和环境管理工具&#xff0c;它不仅能管理包&#xff0c;还能隔…

“本草”大模型开源,ChatGPT时代,连AI私人医生都出现了?

大家好,我是千与千寻,也可以叫我千寻,今天给大家分享的ChatGPT新应用项目,是ChatGPT模型在医学领域的应用,什么,医学领域? 是的,没错,是医学领域的ChatGPT应用,我们都知道ChatGPT是OpenAI开源的一个智能对话式引擎,今天给大家分享的项目叫“本草”。 “本草”模型是…

linux下打开对外开放端口号

第一种方式 &#xff08;1&#xff09;查看对外开放的端口状态 查询已开放的端口 netstat -ntulp | grep 端口号&#xff1a;可以具体查看某一个端口号 查询指定端口是否已开 firewall-cmd --query-port666/tcp 提示 yes&#xff0c;表示开启&a…

chatgpt赋能python:Python怎么装中文?

Python怎么装中文&#xff1f; 介绍 Python是一种非常流行的编程语言&#xff0c;用于各种不同类型的任务&#xff0c;包括应用程序开发、数据科学和人工智能等等。但是&#xff0c;如果您在安装Python时遇到了一些困难&#xff0c;比如无法输入中文&#xff0c;那么阅读本文…

GitHub万星大佬做出纳?开发OpenAI工具必用知识集;ChatGPT最新速查表;6万字AI Prompt教程 | ShowMeAI日报

&#x1f440;日报合辑 | &#x1f3a1;生产力工具与行业应用大全 | &#x1f9e1; 点赞关注评论拜托啦&#xff01; &#x1f916; GitHub 万星大佬&#xff0c;生活所迫接连转行&#xff0c;外卖送过了&#xff0c;现在要去做出纳&#xff0c;买瓶可乐都得犹豫 &#x1f30f;…

AutoGPT使用

windows和mac都可以使用 1&#xff0c;安装python 10 https://www.tutorialspoint.com/how-to-install-python-in-windows 2&#xff0c;下载AutoGPT代码 通过git克隆AutoGPT项目&#xff0c;git clone https://github.com/Torantulino/Auto-GPT.git如果没有安装git的同学就…

如何用Stable Diffusion模型生成个人专属创意名片?

目录 1 什么是二维码&#xff1f;2 什么是扩散模型&#xff1f;3 Stable Diffusion环境搭建4 开始制作创意名片结语 1 什么是二维码&#xff1f; 二维码是一种用于存储和传输信息的方便而广泛使用的图像编码技术。它是由黑色方块和白色空白区域组成的二维图形&#xff0c;可以…

chatgpt赋能python:用Python生成带照片的二维码,让你的业务变得更有效!

用Python生成带照片的二维码&#xff0c;让你的业务变得更有效&#xff01; 当谈到数字营销和交流业务时&#xff0c;二维码已经成为了一种流行的选择。二维码可以将大量的信息储存到一个小小的图像中&#xff0c;方便让消费者扫描后获取信息&#xff0c;例如&#xff1a;产品…

【Prompt工程】爱因斯坦说:问题的表述往往比解决问题更为重要——这也许就是“提示工程”的本质……

爱因斯坦说过,问题的表述往往比解决问题更为重要,后者可能只是数学或实验技能这样的事。根据这句话,详细写一篇论文,5000字。 问题表述之重要性:从爱因斯坦的名言中揭示求解问题的关键 文章目录 问题表述之重要性:从爱因斯坦的名言中揭示求解问题的关键摘要引言问题表述对…