summary(4.8-4.18)

本文深入解析了评估指标Precision、Recall及F-measure的概念与应用,通过实例详细阐述了这些指标在推荐系统与代码建议场景中的重要性。同时,探讨了评价指标在不同领域的适用性和局限性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

学习了评价指标中的precision , recall ,F-measure,因为之前接触过这三个指标,所以在1.1节与1.2节回顾了一下,1.3节举例说明这三个指标在recommender system(推荐系统)中的应用,最后写了precision与 recall用在cod suggestion中以及存在的疑惑。第二节是plan。明天也会看一下搜索引擎中用的RMSE,希望老师明天或者下周有时间能找我交谈一下。

1. evaluate

1.1 accuracy --> precision & recall -->F-measure

对于垃圾邮件识别,如果有10封邮件,9封垃圾邮件,如果我们全识别成垃圾邮件,那么accuracy = 9 /10 =90%,这样的准确率虽然比较高,但是造成的后果所有的邮件被拦截,如果某一地区有了流行性疾病,10个人中有8个患病,那医院全都诊断所有人患病,这样accuracy很高,但是这个衡量标准(accuracy)不足以说明问题,因为这里我们对于类别不在视为平等,我们比较关心诊断的结果要可靠,尽可能所有真正的患者找出来。那么就有precision与recall。
比如10个就诊的人中7人患病,我们关心—诊断的结果要可靠,尽可能所有真正的患者找出来,也就是与我们relevant的是患病。

true =    [1,1,1,1,1,0,0,0,0,0]    #10个就诊的人中5人患病,1表示患病,0表示健康)
predict = [1,1,1,0,0,1,1,1,0,0]    #就诊结果中,有6人患病,3人是真正的患者

p r e c i s i o n = 真 正 的 患 者 且 诊 断 为 患 者 诊 断 为 患 者 =   3   7 = 50 % precision = \frac{\quad真正的患者且诊断为患者\quad}{\quad诊断为患者\quad} = \frac{ \ 3\ }{\quad 7\quad } = 50\% precision==7 3 =50%
r e c a l l = 真 正 的 患 者 且 诊 断 为 患 者 真 正 的 患 者 =   3   5 = 60 % recall\quad = \frac{\quad真正的患者且诊断为患者\quad }{\quad真正的患者\quad} = \frac{ \ 3\ }{ \quad5\quad } = 60\% recall==5 3 =60%

 precision (also called positive predictive value) is the fraction of relevant instances among the retrieved instances, 
 while recall (also known as sensitivity) is the fraction of relevant instances that have been retrieved over the total 
 amount of relevant instances. Both precision and recall are  therefore based on an understanding and measure 
 of relevance.     ---wiki
#python
def evaluation(label,pred):
    eval = {"TP":0,"TN":0,"FP":0,"FN":0}
    for i in range(len(label)):
        if label[i] == pred[i]:
            if pred[i] == 1:
                eval["TP"] += 1
            else:
                eval["TN"] += 1
        else:
            if pred[i] == 1:
                eval["FP"] += 1
            else:
                eval["FN"] += 1
    precision = eval["TP"] / (eval["TP"] + eval["FP"])
    recall = eval["TP"] / (eval["TP"] + eval["FN"])
    return precision,recall

true =    [1,1,1,1,1,0,0,0,0,0]    #10个就诊的人中5人患病,1表示患病,0表示健康)
predict = [1,1,1,0,0,1,1,1,6,0]    #就诊结果中,有6人患病,3人是真正的患者
prec,recl = evaluation(true,predict)
print(prec,recl)

precision = 50%就证明该家医院的对于患病的诊断结果的"准确率"只有50%,那诊断结果为健康的"准确率"呢?没有涉及到,与我们relevant的是患病(不论是真的患病还是诊断为患病)。
recall=60%就说明10个患者,6个患者会被正确找出来,注意,不代表诊断为患病的人为6个,因为在recall中被误诊的人我们不care,只care10个患者有没有找全。
precision和recall两个是互相矛盾的,如果为了提高precision,我们只对我们百分之白肯定的人下诊断结果,比如

true =    [1,1,1,1,1,0,0,0,0,0]    #10个就诊的人中5人患病,(1表示患病,0表示健康)
predict = [1,0,0,0,0,0,0,0,0,0]    #就诊结果中,有1人患病,1人是真正的患者

p r e c i s i o n =   1   1 = 100 % precision = \frac{ \ 1\ }{\quad 1\quad } = 100\% precision=1 1 =100%
r e c a l l =   1   5 = 20 % recall\quad = \frac{ \ 1\ }{ \quad5\quad } = 20\% recall=5 1 =20%

为了提高recall,只要有点迹象我们就认为患病:

true =      [1,1,1,1,1,0,0,0,0,0]    #10个就诊的人中5人患病,(1表示患病,0表示健康)
predict = [1,1,1,1,0,1,1,1,1,1]    #就诊结果中,有9人患病,4人是真正的患者

p r e c i s i o n =   4   9 = 44 % precision = \frac{ \ 4\ }{\quad 9\quad } = 44\% precision=9 4 =44%
r e c a l l =   5   5 = 100 % recall\quad = \frac{ \ 5\ }{ \quad5\quad } = 100\% recall=5 5 =100%
当然全部诊断为患者:
p r e c i s i o n =   5   10 = 50 % precision = \frac{ \ 5\ }{\quad 10\quad } = 50\% precision=10 5 =50%
一般情况下,precision与recall,一个增加会导致另一个下降。我们可以综合考虑precision与recall,简单来说就是连着相加,有更好就是基于Rijsbergen’s effectiveness measure导出的F-measure
  F β = ( 1 + β 2 ) ⋅ p r e c i s i o n ⋅ r e c a l l β 2 ⋅ p r e c i s i o n + r e c a l l {\ F_{\beta }=(1+\beta ^{2})\cdot {\frac {\mathrm {precision} \cdot \mathrm {recall} }{\beta ^{2}\cdot \mathrm {precision} +\mathrm {recall} }}}  Fβ=(1+β2)β2precision+recallprecisionrecall,

{ β &gt; 1 注 重 r e c a l l β &lt; 1 注 重 p r e c i s i o n β = 1 就 是 我 们 常 说 的 F 1 − m e s u r e \left\{ \begin{aligned} \beta&gt;1 &amp; &amp; 注重recall \\ \beta &lt; 1 &amp; &amp;注重precision \\ \beta = 1 &amp; &amp; 就是我们常说的F1-mesure \end{aligned} \right. β>1β<1β=1recallprecisionF1mesure

其中第一类错误率(Type I )就是误诊,将诊断为患者的人,实际上为健康的人。而将真正的患者诊断为健康的人为第二类错误( type II errors)。第一类错误多了,容易引起社会恐慌,医闹等,第二类错误使得病人不能及时就医,一般情况下,Type I 带来的情况更糟糕,比如正常邮件被当成垃圾邮件拦截而丢失工作,正常细胞被误诊为癌细胞被切除等等。

1.2 TP,TN,FP,FN

我们刚才反复强调与我们relevant的是:患病(不论是真的患病还是诊断为患病)

P是positive表示正类,我们与我们relevant的,也就是患病,
N是negative表示负类,我们与我们irrelevant的,也就是没患病,健康
TP, TN, FP, FN, where TP = True Positive, TN = True Negative, FP = False Positive, and FN = False Negative.

TP = 诊断为患者 且是真正的患者
TN = 诊断为健康 且是健康的
FP = 诊断为患者 实际是健康的
FN = 诊断为健康 实际是患者

A c c u r a c y = T P + T N T P + T N + F P + F N Accuracy = {\displaystyle \frac {\mathrm{TP + TN}}{ \mathrm {TP+TN+FP+FN} }} Accuracy=TP+TN+FP+FNTP+TN : 衡量所有的预测结果是否准确;

P r e c i s i o n = T P T P + F P Precision = {\displaystyle \frac {\mathrm{TP }}{ \mathrm {TP+FP} }} Precision=TP+FPTP 相关预测(relevant predictions )能力,或者查准率(exactness)。也就是预测出来的患者真的患病的精确度。

R e c a l l = T P T P + F N Recall = {\displaystyle \frac {\mathrm{TP }}{ \mathrm {TP+FN} }} Recall=TP+FNTP 描述查全能力(completeness)

precision is "how useful the search results are", and recall is "how complete the results are". --wiki

1.3 evaluation in recommender systems

以求推荐的前3个(top3)items的Precision and recall为例, 假设推荐系统(recommender systems)使用的是评分机制(rating system),1-5星,1星为不喜欢,5星为特别喜欢。以3.5分为分界线,大于等于3.5分为positive(good),小于3.5分为negative(bad),
我们共有10个items

itemratingitemrating
item14item6?
item22item72
item33item8?
item4?item9?
item55item104

在一次预测中

itemuser(true/predict)
item72 / 4.9
item55 / 4.5
item104 / 4.3
item32 / 3.6
item23 / 3.4
item14 / 2.3

Relevant items:

Relevant items: item5, item10 and item1 total # of relevant items = 3

Recommended items @3

Recommended items : item7, item5 and item10 # of recommended items@3 = 3

Recommended and Relevant items @ 3

Recommended@3 intersection Relevant: item5 and item10#of recommended items that are relevant @3= 2

Precision @ 3:

Precision@3= 2/3 = 66.67%

Recall @ 3:

Recall@3 = 2/3 = 66.67%

1.4 evaluation in code suggestion

如果在code suggestion的时候,model最后一层是softmax ,出来的是probability,我们取top5,
Relevant items:
我们希望的suggestion只有一项就是我们挖掉的,也就是relevant items = 1

Recommended items @5

如果我们设置一个阈值(threshold),规定probability高于threshold为positive,否则为negative

Precision @ 5:

P r e c i s i o n @ 5 = 分 子 分 母 Precision@5 = {\displaystyle \frac {分子}{ \quad分母 \quad}} \quad Precision@5= 分子 ∈ \in {0,1},分母 ∈ \in {0,1,2,3,4,5}

Recall @ 5:

R e c a l l @ 5 = 分 子 分 母 = 1 Recall @ 5 = {\displaystyle \frac {分子}{ 分母= 1}} \quad Recall@5==1 分子 ∈ \in {0,1}

1.5 Question

code suggestion ,正确的suggestion只有一个,按这种理解,这里的recall非0即1。换用precision,其中受一方面受threshold影响,另一方面分子也是非零即1,衡量标准是否是这样用在code-suggestion?

1.6 RMSE(RMSD)

root-mean-square deviation (RMSD) or root-mean-square error (RMSE)
公式:
RMSD ⁡ = ∑ i = 1 N ( y ^ i − y i ) 2 N . {\displaystyle \operatorname {RMSD} ={\sqrt {\frac { \sum_{i=1}^{N}({\hat {y}}_{i}-y_{i})^{2}}{N}}}.} RMSD=Ni=1N(y^iyi)2 .
推荐系统(recommender system)中的RMSE:

User A rated itemX with Ystar, Y ∈ 1 , 2 , 3 , 4 , 5 \quad \quad Y\in{1,2,3,4,5} Y1,2,3,4,5
collect 一大笔这样的training data,train出一个回归模型(regression model),便可以预测某user对某items的评分为 y ^ \hat y y^,对validation set求RMSE为:
RMSD ⁡ = ∑ i = 1 N ( y ^ i − y i ) 2 N . {\displaystyle \operatorname {RMSD} ={\sqrt {\frac { \sum_{i=1}^{N}({\hat {y}}_{i}-y_{i})^{2}}{N}}}.} RMSD=Ni=1N(y^iyi)2 .
RMSE越小,预测越准确,model越好。
所以这个指标对应的是 回归模型。

参考:

  1. wiki Precision and recall
  2. wiki Type_I_and_type_II_errors
  3. Precision and recall in recommender systems. And some metrics stuff.
  4. Recall and Precision at k for Recommender Systems
  5. https://developers.google.com/machine-learning/crash-course/classification/precision-and-recall
  6. Python自然语言处理学习笔记之评价(evaluationd)
  7. Evaluating Recommender Systems: Choosing the best one for your business

2. plan

在这里插入图片描述

Period of timeplan
4.14 - 4.17

学习RNN与LSTM ,就为什么用RNN,LSTM,优缺点以及long dependence等方面进行了学习,已完成

4.18 - 4.20

1. evaluate机制
2. 实现用LSTM版本的code-suggestion(即将sequence embedddin为一个vector,送入softmax等,得到在test上的evaluate的结果

4.20 - 4.21

了解dataset,从dataset的AST的可视化到AST还原source code

4.20 - 4.27

清楚attention mechanism,实现lstm+attention的code -suggestion,得到evaluate (预期,程序可能会出现loss不降等问题)

4.27- 5.4

清楚pointer NN,实现lstm+attention+pointer的code -suggestion,得到evaluate的结果,对比之前的解结果进行分析

在这里插入图片描述

Period of timeplan
5.5- 5.19论文初稿
5.20- 5.26论文修改版
5.27- 5.31论文最终版

3. plan in detail

Period of timeplan
周一 5.13basic structure, 5个部分
5.14第二部分 理论基础
5.15第三,四部分model和基本实现条件与讨论
5.16 周四第五部分结论与展望 与第一部分绪论
5.17 周五abstract 交给mentor
序号 Name Version Build Channel 1 _libgcc_mutex 0.1 main 2 _openmp_mutex 5.1 1_gnu 3 absl-py 1.4.0 pypi_0 pypi 4 ads-custom-op 0.1.0 pypi_0 pypi 5 anyio 3.7.1 pypi_0 pypi 6 argon2-cffi 21.3.0 pypi_0 pypi 7 argon2-cffi-bindings 21.2.0 pypi_0 pypi 8 arrow 1.2.3 pypi_0 pypi 9 asttokens 2.2.1 pypi_0 pypi 10 async-lru 2.0.3 pypi_0 pypi 11 async-timeout 4.0.3 pypi_0 pypi 12 attrs 23.1.0 pypi_0 pypi 13 autopep8 2.0.2 pypi_0 pypi 14 babel 2.12.1 pypi_0 pypi 15 backcall 0.2.0 pypi_0 pypi 16 beautifulsoup4 4.12.2 pypi_0 pypi 17 bleach 6.0.0 pypi_0 pypi 18 build 1.2.1 pypi_0 pypi 19 ca-certificates 2023.05.30 h06a4308_0 20 cachetools 5.3.1 pypi_0 pypi 21 carla 0.9.13 pypi_0 pypi 22 certifi 2023.5.7 pypi_0 pypi 23 cffi 1.15.1 pypi_0 pypi 24 charset-normalizer 3.1.0 pypi_0 pypi 25 coloredlogs 15.0.1 pypi_0 pypi 26 comm 0.1.3 pypi_0 pypi 27 contourpy 1.1.0 pypi_0 pypi 28 cycler 0.11.0 pypi_0 pypi 29 cython 3.0.11 pypi_0 pypi 30 debugpy 1.6.7 pypi_0 pypi 31 decorator 5.1.1 pypi_0 pypi 32 defusedxml 0.7.1 pypi_0 pypi 33 diffusers 0.29.1 pypi_0 pypi 34 easydict 1.1 pypi_0 pypi 35 einops 0.8.0 pypi_0 pypi 36 exceptiongroup 1.1.2 pypi_0 pypi 37 executing 1.2.0 pypi_0 pypi 38 fastjsonschema 2.17.1 pypi_0 pypi 39 filelock 3.12.2 pypi_0 pypi 40 filterpy 1.4.5 pypi_0 pypi 41 flatbuffers 23.5.26 pypi_0 pypi 42 fonttools 4.40.0 pypi_0 pypi 43 fqdn 1.5.1 pypi_0 pypi 44 fsspec 2023.6.0 pypi_0 pypi 45 google-auth 2.21.0 pypi_0 pypi 46 google-auth-oauthlib 1.0.0 pypi_0 pypi 47 grpcio 1.56.0 pypi_0 pypi 48 gtimer 1.0.0b5 pypi_0 pypi 49 huggingface-hub 0.23.4 pypi_0 pypi 50 humanfriendly 10 pypi_0 pypi 51 idna 3.4 pypi_0 pypi 52 imageio 2.35.1 pypi_0 pypi 53 imgaug 0.4.0 pypi_0 pypi 54 importlib-metadata 6.7.0 pypi_0 pypi 55 importlib-resources 5.12.0 pypi_0 pypi 56 intervaltree 3.1.0 pypi_0 pypi 57 ipykernel 6.24.0 pypi_0 pypi 58 ipython 8.13.0 pypi_0 pypi 59 isoduration 20.11.0 pypi_0 pypi 60 iteration-utilities 0.12.1 pypi_0 pypi 61 jedi 0.18.2 pypi_0 pypi 62 jinja2 3.1.2 pypi_0 pypi 63 json5 0.9.14 pypi_0 pypi 64 jsonpointer 2.4 pypi_0 pypi 65 jsonschema 4.18.4 pypi_0 pypi 66 jsonschema-specifications 2023.7.1 pypi_0 pypi 67 jupyter-client 8.3.0 pypi_0 pypi 68 jupyter-core 5.3.1 pypi_0 pypi 69 jupyter-events 0.6.3 pypi_0 pypi 70 jupyter-lsp 2.2.0 pypi_0 pypi 71 jupyter-server 2.7.0 pypi_0 pypi 72 jupyter-server-terminals 0.4.4 pypi_0 pypi 73 jupyterlab 4.0.3 pypi_0 pypi 74 jupyterlab-pygments 0.2.2 pypi_0 pypi 75 jupyterlab-server 2.23.0 pypi_0 pypi 76 kiwisolver 1.4.4 pypi_0 pypi 77 kornia 0.6.12 pypi_0 pypi 78 lazy-import 0.2.2 pypi_0 pypi 79 lazy-loader 0.4 pypi_0 pypi 80 ld_impl_linux-64 2.38 h1181459_1 81 libffi 3.4.4 h6a678d5_0 82 libgcc-ng 11.2.0 h1234567_1 83 libgomp 11.2.0 h1234567_1 84 libstdcxx-ng 11.2.0 h1234567_1 85 llvmlite 0.41.1 pypi_0 pypi 86 lxml 4.9.3 pypi_0 pypi 87 markdown 3.4.3 pypi_0 pypi 88 markdown-it-py 3.0.0 pypi_0 pypi 89 markupsafe 2.1.3 pypi_0 pypi 90 matplotlib 3.7.2 pypi_0 pypi 91 matplotlib-inline 0.1.6 pypi_0 pypi 92 mdurl 0.1.2 pypi_0 pypi 93 mistune 3.0.1 pypi_0 pypi 94 more-itertools 10.4.0 pypi_0 pypi 95 moxing-framework 2.2.8.0aa484aa pypi_0 pypi 96 mpmath 1.3.0 pypi_0 pypi 97 munkres 1.1.4 pypi_0 pypi 98 nbclient 0.8.0 pypi_0 pypi 99 nbconvert 7.7.2 pypi_0 pypi 100 nbformat 5.9.1 pypi_0 pypi 101 ncurses 6.4 h6a678d5_0 102 nest-asyncio 1.5.6 pypi_0 pypi 103 networkx 3.1 pypi_0 pypi 104 notebook 7.0.0 pypi_0 pypi 105 notebook-shim 0.2.3 pypi_0 pypi 106 numba 0.58.1 pypi_0 pypi 107 numpy 1.24.4 pypi_0 pypi 108 oauthlib 3.2.2 pypi_0 pypi 109 onnx 1.14.0 pypi_0 pypi 110 onnxruntime 1.15.1 pypi_0 pypi 111 onnxruntime-extensions 0.8.0 pypi_0 pypi 112 opencv-python 4.8.0.74 pypi_0 pypi 113 openssl 3.0.9 h7f8727e_0 114 overrides 7.3.1 pypi_0 pypi 115 packaging 23.1 pypi_0 pypi 116 pandas 2.0.3 pypi_0 pypi 117 pandocfilters 1.5.0 pypi_0 pypi 118 parso 0.8.3 pypi_0 pypi 119 pathlib2 2.3.7.post1 pypi_0 pypi 120 pexpect 4.8.0 pypi_0 pypi 121 pickle5 0.0.11 pypi_0 pypi 122 pickleshare 0.7.5 pypi_0 pypi 123 pillow 9.5.0 pypi_0 pypi 124 pip 23.1.2 py38h06a4308_0 125 pkgutil-resolve-name 1.3.10 pypi_0 pypi 126 platformdirs 3.9.1 pypi_0 pypi 127 prettytable 3.11.0 pypi_0 pypi 128 prometheus-client 0.17.1 pypi_0 pypi 129 prompt-toolkit 3.0.39 pypi_0 pypi 130 protobuf 3.20.3 pypi_0 pypi 131 psutil 5.9.5 pypi_0 pypi 132 ptyprocess 0.7.0 pypi_0 pypi 133 pure-eval 0.2.2 pypi_0 pypi 134 pyasn1 0.5.0 pypi_0 pypi 135 pyasn1-modules 0.3.0 pypi_0 pypi 136 pycocotools 2.0.7 pypi_0 pypi 137 pycodestyle 2.10.0 pypi_0 pypi 138 pycparser 2.21 pypi_0 pypi 139 pygments 2.15.1 pypi_0 pypi 140 pyparsing 3.0.9 pypi_0 pypi 141 pyproject-hooks 1.1.0 pypi_0 pypi 142 pyquaternion 0.9.9 pypi_0 pypi 143 python 3.8.17 h955ad1f_0 144 python-dateutil 2.8.2 pypi_0 pypi 145 python-json-logger 2.0.7 pypi_0 pypi 146 pytz 2023.3 pypi_0 pypi 147 pywavelets 1.4.1 pypi_0 pypi 148 pyyaml 6 pypi_0 pypi 149 pyzmq 25.1.0 pypi_0 pypi 150 readline 8.2 h5eee18b_0 151 redis 5.0.8 pypi_0 pypi 152 referencing 0.30.0 pypi_0 pypi 153 regex 2024.5.15 pypi_0 pypi 154 requests 2.31.0 pypi_0 pypi 155 requests-oauthlib 1.3.1 pypi_0 pypi 156 rfc3339-validator 0.1.4 pypi_0 pypi 157 rfc3986-validator 0.1.1 pypi_0 pypi 158 rich 13.7.1 pypi_0 pypi 159 rpds-py 0.9.2 pypi_0 pypi 160 rsa 4.9 pypi_0 pypi 161 safetensors 0.3.1 pypi_0 pypi 162 scikit-image 0.21.0 pypi_0 pypi 163 scipy 1.10.1 pypi_0 pypi 164 seaborn 0.13.2 pypi_0 pypi 165 send2trash 1.8.2 pypi_0 pypi 166 setuptools 67.8.0 py38h06a4308_0 167 shapely 2.0.6 pypi_0 pypi 168 six 1.16.0 pypi_0 pypi 169 sniffio 1.3.0 pypi_0 pypi 170 sortedcontainers 2.4.0 pypi_0 pypi 171 soupsieve 2.4.1 pypi_0 pypi 172 sqlite 3.41.2 h5eee18b_0 173 stack-data 0.6.2 pypi_0 pypi 174 sympy 1.12 pypi_0 pypi 175 tensorboard 2.13.0 pypi_0 pypi 176 tensorboard-data-server 0.7.1 pypi_0 pypi 177 tensorboardx 2.6.2.2 pypi_0 pypi 178 terminado 0.17.1 pypi_0 pypi 179 thop 0.1.1-2209072238 pypi_0 pypi 180 tifffile 2023.7.10 pypi_0 pypi 181 timm 0.9.2 pypi_0 pypi 182 tinycss2 1.2.1 pypi_0 pypi 183 tk 8.6.12 h1ccaba5_0 184 tomli 2.0.1 pypi_0 pypi 185 torch 1.12.1+cu113 pypi_0 pypi 186 torchaudio 0.12.1+cu113 pypi_0 pypi 187 torchvision 0.13.1+cu113 pypi_0 pypi 188 tornado 6.3.2 pypi_0 pypi 189 tqdm 4.65.0 pypi_0 pypi 190 traitlets 5.9.0 pypi_0 pypi 191 typeguard 4.3.0 pypi_0 pypi 192 typing-extensions 4.12.2 pypi_0 pypi 193 tzdata 2024.1 pypi_0 pypi 194 ujson 5.10.0 pypi_0 pypi 195 uri-template 1.3.0 pypi_0 pypi 196 urllib3 1.26.16 pypi_0 pypi 197 wcwidth 0.2.6 pypi_0 pypi 198 webcolors 1.13 pypi_0 pypi 199 webencodings 0.5.1 pypi_0 pypi 200 websocket-client 1.6.1 pypi_0 pypi 201 werkzeug 2.3.6 pypi_0 pypi 202 wheel 0.38.4 py38h06a4308_0 203 xz 5.4.2 h5eee18b_0 204 yacs 0.1.8 pypi_0 pypi 205 zipp 3.15.0 pypi_0 pypi 206 zlib 1.2.13 h5eee18b_0 207 zlib 1.2.13 h5eee18b_0 207个包分别做下备注和适用点字数10字以内
07-09
内容概要:该研究通过在黑龙江省某示范村进行24小时实地测试,比较了燃煤炉具与自动/手动进料生物质炉具的污染物排放特征。结果显示,生物质炉具相比燃煤炉具显著降低了PM2.5、CO和SO2的排放(自动进料分别降低41.2%、54.3%、40.0%;手动进料降低35.3%、22.1%、20.0%),但NOx排放未降低甚至有所增加。研究还发现,经济性和便利性是影响生物质炉具推广的重要因素。该研究不仅提供了实际排放数据支持,还通过Python代码详细复现了排放特征比较、减排效果计算和结果可视化,进一步探讨了燃料性质、动态排放特征、碳平衡计算以及政策建议。 适合人群:从事环境科学研究的学者、政府环保部门工作人员、能源政策制定者、关注农村能源转型的社会人士。 使用场景及目标:①评估生物质炉具在农村地区的推广潜力;②为政策制定者提供科学依据,优化补贴政策;③帮助研究人员深入了解生物质炉具的排放特征和技术改进方向;④为企业研发更高效的生物质炉具提供参考。 其他说明:该研究通过大量数据分析和模拟,揭示了生物质炉具在实际应用中的优点和挑战,特别是NOx排放增加的问题。研究还提出了多项具体的技术改进方向和政策建议,如优化进料方式、提高热效率、建设本地颗粒厂等,为生物质炉具的广泛推广提供了可行路径。此外,研究还开发了一个智能政策建议生成系统,可以根据不同地区的特征定制化生成政策建议,为农村能源转型提供了有力支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值