{"action":"created","comment":{"url":"https://api.github.com/repos/xitu/gold-miner/pulls/comments/183274345","pull_request_review_id":114239232,"id":183274345,"diff_hunk":"@@ -2,188 +2,188 @@\n > * 原文作者：[Pramit Choudhary](https://www.oreilly.com/people/2391d-pramit-choudhary)\n > * 译文出自：[掘金翻译计划](https://github.com/xitu/gold-miner)\n > * 本文永久链接：[https://github.com/xitu/gold-miner/blob/master/TODO1/interpreting-predictive-models-with-skater-unboxing-model-opacity.md](https://github.com/xitu/gold-miner/blob/master/TODO1/interpreting-predictive-models-with-skater-unboxing-model-opacity.md)\n-> * 译者：\n-> * 校对者：\n+> * 译者：radialine\n+> * 校对者：ALVINYEH\n \n-# Interpreting predictive models with Skater: Unboxing model opacity\n+# 用 Skater 解读预测模型：打开模型的黑箱\n \n-A deep dive into model interpretation as a theoretical concept and a high-level overview of Skater.\n+本文将把模型解释作为一个理论概念进行深入探讨，并对 Skater 进行高度概括。\n \n-![Cube model](https://d3tdunqjn7n0wj.cloudfront.net/360x240/model-3211631_1920_crop-e62adea7b63b80a1074f5023cec1e4cd.jpg)\n+![立方体模型](https://d3tdunqjn7n0wj.cloudfront.net/360x240/model-3211631_1920_crop-e62adea7b63b80a1074f5023cec1e4cd.jpg)\n \n-Cube model (source: [Pixabay](https://pixabay.com/en/model-3d-background-cube-blue-3211631/))\n+立方体模型 (来源：[Pixabay](https://pixabay.com/en/model-3d-background-cube-blue-3211631/))\n \n-> [Check out Pramit Choudhary's session \"Model evaluation in the land of deep learning\"](https://conferences.oreilly.com/artificial-intelligence/ai-ny/public/schedule/detail/65118?intcmp=il-data-confreg-lp-ainy18_new_site_interpreting-predictive-models-with-skater-unboxing-model-opacity_top_cta) at the AI Conference in New York, April 29-May 2, 2018.\n+> [查看 Pramit Choudhary 在纽约 AI 会议上的演讲“深度学习中的模型评估” 2018.04.29 - 2018.05.02](https://conferences.oreilly.com/artificial-intelligence/ai-ny/public/schedule/detail/65118?intcmp=il-data-confreg-lp-ainy18_new_site_interpreting-predictive-models-with-skater-unboxing-model-opacity_top_cta)\n \n-Over the years, machine learning (ML) has come a long way, from its existence as experimental research in a purely academic setting to wide industry adoption as a means for automating solutions to real-world problems. But oftentimes, these algorithms are still perceived as alchemy because of the lack of understanding of the inner workings of these model (see [Ali Rahimi, NIPS '17](https://youtu.be/Qi1Yry33TQE)). There is often a need to verify the reasoning of such ML systems to hold algorithms accountable for the decisions predicted. Researchers and practitioners are grappling with the ethics of relying on predictive models that might have unanticipated effects on human life, such as the algorithms evaluating eligibility for mortgage loans or powering self-driving cars (see Kate Crawford, NIPS '17, “[The Trouble with Bias](https://youtu.be/6Uao14eIyGc)”). Data Scientist Cathy O’Neil has recently written an [entire book](https://weaponsofmathdestructionbook.com/author/mathbabe/) filled with examples of poor interpretability as a dire warning of the potential social carnage from misunderstood models—e.g., [modeling bias in criminal sentencing](https://www.propublica.org/article/machine-bias-risk-assessments-in-criminal-sentencing) or using dummy features with human bias while building financial models.\n+多年来，机器学习（ML）已经取得了长足的发展，它从纯粹的学术环境中作为实验研究的存在，到被行业广泛采用成为自动化解决实际问题的手段。但是，由于对这些模型的内部运作方式缺乏了解，这些算法通常仍被视为魔术（参见 [Ali Rahimi, NIPS'17](https://youtu.be/Qi1Yry33TQE)）。因此常常需要通常验证这种 ML 系统的运作过程，以使算法更加可信。研究人员和从业人员正在努力克服依赖可能对人类生活产生意想不到影响的预测模型所带来的道德问题，这类预测模型有评估抵押贷款资格模型，或为自动驾驶汽车提供动力的算法（参见 Kate Crawford, NIPS '17，“[偏差带来的麻烦](https://youtu.be/6Uao14eIyGc)”）。数据科学家 Cathy O’Neil 最近撰写了[一本书](https://weaponsofmathdestructionbook.com/author/mathbabe/)，其内容全部是可解释性差模型的例子，这些模型提出了对潜在社会大屠杀的严重警告 —— 例如，[犯罪判决模型中的模型偏见](https://www.propublica.org/article/machine-bias-risk-assessments-in-criminal-sentencing)或在建立财务模型时因为人为偏见使用虚假特征的例子。\n \n-![Traditional methods for interpreting predictive models are not enough](https://d3ansictanv2wj.cloudfront.net/FigureArt-0eccc75aa2e5a5f72e91ef990cb2dc59.png)\n+![传统的解释预测模型的方法是不够的](https://d3ansictanv2wj.cloudfront.net/FigureArt-0eccc75aa2e5a5f72e91ef990cb2dc59.png)\n \n-Figure 1. Traditional methods for interpreting predictive models are not enough. Image courtesy of Pramit Choudhary.\n+图 1. 传统的解释预测模型的方法是不够的。图片由 Pramit Choudhary 提供。\n \n-There is also a [trade off](https://www.ncbi.nlm.nih.gov/pubmed/21554073) in balancing a model’s interpretability and its performance. Practitioners often choose linear models over complex ones, compromising performance for interpretability, which might be fine for many use cases where the cost of an incorrect prediction is not high. But, in some scenarios, such as [credit scoring](https://www.consumer.ftc.gov/articles/pdf-0096-fair-credit-reporting-act.pdf) or the [judicial system](https://www.propublica.org/article/making-algorithms-accountable), models have to be both highly accurate and understandable. In fact, the ability to account for the fairness and transparency of these predictive models has been mandated for legal compliance.\n+在平衡模型的可解释性和性能方面也存在[折衷](https://www.ncbi.nlm.nih.gov/pubmed/21554073)。从业者通常选择线性模型而不是复杂模型，牺牲性能换取更好的可解释性。对于那些预测错误后果不严重的用例而言，这种方式是可行的。但在某些情况下，如[信用评分](https://www.consumer.ftc.gov/articles/pdf-0096-fair-credit-reporting-act.pdf)或[司法系统](https://www.propublica.org/article/making-algorithms-accountable)的模型必须既高度准确又易于理解。事实上，法律已经要求保证这类预测模型的公平性和透明度。\n \n-At [DataScience.com](https://www.datascience.com/), where I’m a lead data scientist, we feel passionately about the ability of practitioners to use models to ensure safety, non-discrimination, and transparency. We recognize the need for human interpretability, and we recently open sourced a Python framework called [Skater](https://www.datascience.com/resources/tools/skater) as an initial step to enable interpretability for researchers and applied practitioners in the field of data science.\n+我在 [DataScience.com](https://www.datascience.com/) 作为首席数据科学家时，我们对帮助从业者使用模型确保安全性、无差别和透明度这份工作充满激情。我们认识到人类的可解释性的需求，因此最近我们开源了一个名为 [Skater](https://www.datascience.com/resources/tools/skater) 的 Python 框架，作为为数据科学领域的研究人员和应用从业人员提供模型解释性的第一步。\n \n-Model evaluation is a complex problem, so I will segment this discussion into two parts. In this first piece, I will dive into model interpretation as a theoretical concept and provide a high-level overview of Skater. In the second part, I will share a more detailed explanation on the algorithms Skater currently supports, as well as the library’s feature roadmap.\n+模型评估是一个复杂的问题，因此我将分两部分进行讨论。在第一部分中，我将把模型解释作为一个概念进行深入探讨，并对 Skater 进行高度概括。 在第二部分中，我将分享 Skater 目前支持的算法的详细解释以及 Skater 库的未来功能蓝图。\n \n-## What is model interpretation?\n+## 什么是模型解释?\n \n-The concept of model interpretability in the field of machine learning is still new, largely subjective, and, at times, controversial (see [Yann LeCun’s response to Ali Rahimi’s talk](https://www.facebook.com/yann.lecun/posts/10154938130592143)). Model interpretation is the ability to explain and validate the decisions of a predictive model to enable fairness, accountability, and transparency in the algorithmic decision-making (for a more detailed explanation on the definition of transparency in machine learning, see “[Challenges of Transparency](https://arxiv.org/pdf/1708.01870.pdf)” by Adrian Weller). Or, to state it formally, model interpretation can be defined as the ability to better understand the decision policies of a machine-learned response function to explain the relationship between independent (input) and dependent (target) variables, preferably in a human interpretable way.\n+在机器学习领域，模型解释还是一个新的、很大程度上主观的、有时还存在争议的概念。（参见 [Yann LeCun 对 Ali Rahimi 谈话的看法](https://www.facebook.com/yann.lecun/posts/10154938130592143)）模型解释能够解释和验证预测模型决策，以实现算法决策的公平性，问责性和透明度（关于机器学习透明度定义的更详细解释，请参见 Adrian Weller 的文章“[透明度挑战](https://arxiv.org/pdf/1708.01870.pdf)” ）。更正式的说明是，模型解释可以被定义为以人类可解释的方式，更好地理解机器学习响应函数的决策策略以解释自变量（输入）和因变量（目标）之间关系的能力。\n \n-Ideally, you should be able to query the model to understand the what, why, and how of its algorithmic decisions\n+理想情况下，您应该能够探究模型以了解其算法决策的内容，原因和方式。\n \n-*   **What information can the model provide to avoid prediction errors?** You should be able to query and understand latent variable interactions in order to evaluate and understand, in a timely manner, what features are driving predictions. This will ensure the fairness of the model.\n-*   **Why did the model behave in a certain way?** You should be able to identify and validate the relevant variables driving the model’s outputs. Doing so will allow you to trust in the reliability of the predictive system, even in unforeseen circumstances. This diagnosis will ensure accountability and safety of the model.\n-*   **How can we trust the predictions made by the model?** You should be able to validate any given data point to demonstrate to business stakeholders and peers that the model works as expected. This will ensure transparency of the model.\n+*   **模型提供了哪些信息来避免预测错误？** 您应该能够探究和了解潜在变量之间的相互作用，以便及时评估和了解是什么特征推动了预测。这些信息将确保模型的公平性。\n+*   **为什么这个模型的有这样的表现？** 您应该能够识别和验证驱动模型决策的相关变量。这样做可以让您即使在无法得到所预测的真实数据的情况下，也相信预测模型的可靠性。这样的模型理解将确保模型的可靠性和安全性。\n+*   **我们怎样才能相信模型所做的预测？** 您应该能够验证任何给定的数据，以向业务利益相关方证明该模型的表现确实和预期一致。这将确保模型的透明度。\n \n-## Existing techniques capturing model interpretation\n+## 现有技术捕捉模型的解释\n \n-The idea of model interpretation is to achieve a better understanding of the mathematical model—which most likely could be achieved by developing a better understanding of the features contributing to the model. This form of understanding could possibly be enabled using popular data exploration and visualization approaches, like [hierarchical clustering](https://en.wikipedia.org/wiki/Hierarchical_clustering) and dimensionality reduction techniques. Further evaluation and validation of models could be enabled using algorithms for model comparison for classification and regression using model specific scorers—AUC-ROC ([area under the receiver operating curve](http://www.math.utah.edu/~gamez/files/ROC-Curves.pdf)) and MAE ([mean absolute error](https://medium.com/human-in-a-machine-world/mae-and-rmse-which-metric-is-better-e60ac3bde13d)). Let’s quickly touch on a few of those.\n+模型解释是为了更好地理解数学模型，这种理解最有可能通过更好地了解模型中重要的特征来获得。理解方式可以是使用流行的数据探索和可视化方法，如[层次聚类](https://en.wikipedia.org/wiki/Hierarchical_clustering)和降维技术来实现。模型的进一步评估和验证可以使用比较模型的算法，使用模型特性评分方法 —— AUC-ROC（[接收者操作特征曲线下面积](http://www.math.utah.edu/~gamez/files/ROC-Curves.pdf)）和 MAE（[平均绝对误差](https://medium.com/human-in-a-machine-world/mae-and-rmse-which-metric-is-better-e60ac3bde13d)）进行分类和回归。让我们快速谈谈其中的一些方法。\n \n-### Exploratory data analysis and visualization\n+### 探索性数据分析和可视化\n \n-Exploratory data analysis can give one a better understanding of your data, in turn providing the expertise necessary to build a better predictive model. During the model-building process, achieving interpretability could mean exploring the data set in order to visualize and understand its “meaningful” internal structure and extract intuitive features with strong signals in a human interpretable way. This might become even more useful for unsupervised learning problems. Let’s go over a few popular data exploration techniques that could fall into the model interpretation category.\n+探索性数据分析可以让您更好地了解您的数据，从而提供构建更好预测模型所需的专业知识。在模型建立过程中，理解模型意味着探索数据集，以便可视化并理解其“有意义”的内部结构，并以容易理解的方式提取有强影响力的直观特征。这种方式对于无监督学习问题可能更加有用。我们来看看属于模型解释类别的一些流行数据探索技术。\n \n-*   **Clustering:** [Hierarchical Clustering](https://en.wikipedia.org/wiki/Hierarchical_clustering)\n-*   **Dimensionality reduction:** [Principal component analysis (PCA)](https://lazyprogrammer.me/tutorial-principal-components-analysis-pca/) (see Figure 2)\n-*   **Variational autoencoders:** An automated generative approach using [variational autoencoders](https://arxiv.org/pdf/1606.05908.pdf) (VAE)\n-*   **[Manifold Learning](https://en.wikipedia.org/wiki/Nonlinear_dimensionality_reduction):** t-Distributed Stochastic Neighbor Embedding ([t-SNE](https://distill.pub/2016/misread-tsne/)) (see Figure 3)\n+*   **聚类：** [分层聚类](https://en.wikipedia.org/wiki/Hierarchical_clustering)\n+*   **降维：** [主成分分析（PCA）](https://lazyprogrammer.me/tutorial-principal-components-analysis-pca/) (见图 2)\n+*   **变分自编码器：** 使用[变分自编码器](https://arxiv.org/pdf/1606.05908.pdf)（VAE）的自动生成方法\n+*   **[流形学习](https://en.wikipedia.org/wiki/Nonlinear_dimensionality_reduction)：**  t 分布式随机相邻嵌入（[t-SNE](https://distill.pub/2016/misread-tsne/)）（见图 3）\n \n-In this article, we will focus on model interpretation in regard to supervised learning problems.\n+在本文中，我们将重点讨论监督学习问题的模型解释。\n \n-![Interpreting high-dimensional MNIST data](https://d3ansictanv2wj.cloudfront.net/Figure1-f6f5f16454b0120a1607e76836236b23.png)\n+![解释高维 MNIST 数据](https://d3ansictanv2wj.cloudfront.net/Figure1-f6f5f16454b0120a1607e76836236b23.png)\n \n-Figure 2. Interpreting high-dimensional MNIST data by visualizing in 3D using PCA for building domain knowledge using TensorFlow. Image courtesy of Pramit Choudhary and the Datascience.com team.\n+图 2. 使用 PCA 以三维可视化技术解释高维 MNIST 数据，以便使用 TensorFlow 构建领域知识。图片由 Pramit Choudhary 和 Datascience.com 团队提供。\n \n-![Visualizing MNIST data](https://d3ansictanv2wj.cloudfront.net/Figure2-2cd5b53ded24be25e376418d041a0bee.png)\n+![可视化 MNIST 数据](https://d3ansictanv2wj.cloudfront.net/Figure2-2cd5b53ded24be25e376418d041a0bee.png)\n \n-Figure 3. Visualizing MNIST data using t-SNE using sklearn. Image courtesy of Pramit Choudhary and the Datascience.com team.\n+图 3. 用 sklearn 库可视化 MNIST 数据。图片由 Pramit Choudhary 和 Datascience.com 团队提供。\n \n-### B. model comparison and performance evaluation\n+### B. 模型比较和性能评估\n \n-In addition to data exploration techniques, model interpretation in a naive form could possibly be achieved using [model evaluation](https://sebastianraschka.com/blog/2016/model-evaluation-selection-part1.html) techniques. Analysts and data scientists can possibly use model comparison and evaluation methods to assess the accuracy of the models. For example, with cross validation and evaluation metrics for classification and regression, you can measure the [performance](https://www.cs.cornell.edu/courses/cs578/2003fa/performance_measures.pdf) of a predictive model. You can optimize on the hyperparameters of the model balancing between bias and variance (see \"[Understanding the Bias-Variance Tradeoff](http://scott.fortmann-roe.com/docs/BiasVariance.html)\").\n+除了数据探索技术外，还可以使用[模型评估技术](https://sebastianraschka.com/blog/2016/model-evaluation-selection-part1.html)进行简单的模型解释。分析师和数据科学家可能会使用模型比较和评估方法来评估模型的准确性。例如，使用交叉验证和评估指标进行分类和回归，您可以衡量预测模型的[性能](https://www.cs.cornell.edu/courses/cs578/2003fa/performance_measures.pdf)。您可以通过优化超参数调整偏差与方差之间的平衡（请参阅文章“[了解偏差 - 方差取舍](http://scott.fortmann-roe.com/docs/BiasVariance.html)”）。\n \n-*   **Classification**: for example, F1-scores, AUC-ROC, brier-score, etc. Consider Figure 3, which shows how AUC-ROC can help measure the model performance on a multi-class problem on the popular iris data set. ROC AUC is a widely popular metric that helps in balancing between true positive rate (TPR) and false positive rate (FPR). It’s pretty robust in handling class imbalances as well. As shown in Figure 3, a ROC AUC (class-2) of 86% means that the probability of the trained classifier assigning a higher score to a positive example (belonging to class-2) than to a negative example (not belonging to class-2) is about 86%. Such aggregated performance metric might be helpful in articulating the global performance of a model. However, it fails to give detailed information on the reasons for misclassification if an error occurs—why did an example belonging to Class 0 get classified as Class 2 and an example belonging to Class 2 get classified as Class 1? Keep in mind, each misclassification may have a varying potential business impact.\n-*   **Regression**: for example, r-squared score ([coefficient of determination](http://itfeature.com/correlation-and-regression-analysis/coefficient-of-determination)), mean squared error, etc.\n+*   **分类：**: 如 F1-scores, AUC-ROC, brier-score 等。如图3，该图显示了 AUC-ROC 如何帮助衡量流行虹膜数据集的分类模型的模型性能。ROC AUC 是一种广泛使用的指标，有助于在真阳性率（TPR）和假阳性率（FPR）之间进行平衡。它在处理偏斜类问题上也非常强大。如图 3 所示，86％的 ROC AUC（ 2 类）意味着训练的分类器向正例（属于 2 类）分配较高分数的概率与负例（不属于 2 类）相比约为 86％。这种汇总的性能指标有助于阐明模型的整体性能。但是，如果分类错误，它并不能给出关于错误分类原因的详细信息 —— 为什么属于 0 类的例子被分类为 2 类，属于 2 类的例子却被分为 1 类？不能忽略的事实是，每个错误分类都可能造成不同程度的潜在业务影响。\n+*   **回归：**: 例如，r-square 值（[决定系数](http://itfeature.com/correlation-and-regression-analysis/coefficient-of-determination)），均方误差等。","path":"TODO1/interpreting-predictive-models-with-skater-unboxing-model-opacity.md","position":103,"original_position":103,"commit_id":"1e3d36405c5d22ee6e1adb19d65522049710f03f","original_commit_id":"1e3d36405c5d22ee6e1adb19d65522049710f03f","user":{"login":"leviding","id":26959437,"avatar_url":"https://avatars3.githubusercontent.com/u/26959437?v=4","gravatar_id":"","url":"https://api.github.com/users/leviding","html_url":"https://github.com/leviding","followers_url":"https://api.github.com/users/leviding/followers","following_url":"https://api.github.com/users/leviding/following{/other_user}","gists_url":"https://api.github.com/users/leviding/gists{/gist_id}","starred_url":"https://api.github.com/users/leviding/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/leviding/subscriptions","organizations_url":"https://api.github.com/users/leviding/orgs","repos_url":"https://api.github.com/users/leviding/repos","events_url":"https://api.github.com/users/leviding/events{/privacy}","received_events_url":"https://api.github.com/users/leviding/received_events","type":"User","site_admin":false},"body":"**回归：**:  => **回归：**","created_at":"2018-04-23T04:25:31Z","updated_at":"2018-04-23T04:34:37Z","html_url":"https://github.com/xitu/gold-miner/pull/3665#discussion_r183274345","pull_request_url":"https://api.github.com/repos/xitu/gold-miner/pulls/3665","author_association":"OWNER","_links":{"self":{"href":"https://api.github.com/repos/xitu/gold-miner/pulls/comments/183274345"},"html":{"href":"https://github.com/xitu/gold-miner/pull/3665#discussion_r183274345"},"pull_request":{"href":"https://api.github.com/repos/xitu/gold-miner/pulls/3665"}}},"pull_request":{"url":"https://api.github.com/repos/xitu/gold-miner/pulls/3665","id":182265711,"html_url":"https://github.com/xitu/gold-miner/pull/3665","diff_url":"https://github.com/xitu/gold-miner/pull/3665.diff","patch_url":"https://github.com/xitu/gold-miner/pull/3665.patch","issue_url":"https://api.github.com/repos/xitu/gold-miner/issues/3665","number":3665,"state":"open","locked":false,"title":"用 Skater 解读预测模型：打开模型的黑箱","user":{"login":"radialine","id":13018802,"avatar_url":"https://avatars3.githubusercontent.com/u/13018802?v=4","gravatar_id":"","url":"https://api.github.com/users/radialine","html_url":"https://github.com/radialine","followers_url":"https://api.github.com/users/radialine/followers","following_url":"https://api.github.com/users/radialine/following{/other_user}","gists_url":"https://api.github.com/users/radialine/gists{/gist_id}","starred_url":"https://api.github.com/users/radialine/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/radialine/subscriptions","organizations_url":"https://api.github.com/users/radialine/orgs","repos_url":"https://api.github.com/users/radialine/repos","events_url":"https://api.github.com/users/radialine/events{/privacy}","received_events_url":"https://api.github.com/users/radialine/received_events","type":"User","site_admin":false},"body":"翻译完成，resolve #3620 \r\n","created_at":"2018-04-17T19:10:00Z","updated_at":"2018-04-23T04:34:37Z","closed_at":null,"merged_at":null,"merge_commit_sha":"1399fb2b4dc3f0cb948e703f91622571ad45bef0","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":514335651,"url":"https://api.github.com/repos/xitu/gold-miner/labels/%E5%90%8E%E7%AB%AF","name":"后端","color":"1d76db","default":false},{"id":322084033,"url":"https://api.github.com/repos/xitu/gold-miner/labels/%E6%AD%A3%E5%9C%A8%E6%A0%A1%E5%AF%B9","name":"正在校对","color":"c2e0c6","default":false}],"milestone":null,"commits_url":"https://api.github.com/repos/xitu/gold-miner/pulls/3665/commits","review_comments_url":"https://api.github.com/repos/xitu/gold-miner/pulls/3665/comments","review_comment_url":"https://api.github.com/repos/xitu/gold-miner/pulls/comments{/number}","comments_url":"https://api.github.com/repos/xitu/gold-miner/issues/3665/comments","statuses_url":"https://api.github.com/repos/xitu/gold-miner/statuses/1e3d36405c5d22ee6e1adb19d65522049710f03f","head":{"label":"radialine:translation/interpreting-predictive-models-with-skater-unboxing-model-opacity.md","ref":"translation/interpreting-predictive-models-with-skater-unboxing-model-opacity.md","sha":"1e3d36405c5d22ee6e1adb19d65522049710f03f","user":{"login":"radialine","id":13018802,"avatar_url":"https://avatars3.githubusercontent.com/u/13018802?v=4","gravatar_id":"","url":"https://api.github.com/users/radialine","html_url":"https://github.com/radialine","followers_url":"https://api.github.com/users/radialine/followers","following_url":"https://api.github.com/users/radialine/following{/other_user}","gists_url":"https://api.github.com/users/radialine/gists{/gist_id}","starred_url":"https://api.github.com/users/radialine/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/radialine/subscriptions","organizations_url":"https://api.github.com/users/radialine/orgs","repos_url":"https://api.github.com/users/radialine/repos","events_url":"https://api.github.com/users/radialine/events{/privacy}","received_events_url":"https://api.github.com/users/radialine/received_events","type":"User","site_admin":false},"repo":{"id":129405885,"name":"gold-miner","full_name":"radialine/gold-miner","owner":{"login":"radialine","id":13018802,"avatar_url":"https://avatars3.githubusercontent.com/u/13018802?v=4","gravatar_id":"","url":"https://api.github.com/users/radialine","html_url":"https://github.com/radialine","followers_url":"https://api.github.com/users/radialine/followers","following_url":"https://api.github.com/users/radialine/following{/other_user}","gists_url":"https://api.github.com/users/radialine/gists{/gist_id}","starred_url":"https://api.github.com/users/radialine/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/radialine/subscriptions","organizations_url":"https://api.github.com/users/radialine/orgs","repos_url":"https://api.github.com/users/radialine/repos","events_url":"https://api.github.com/users/radialine/events{/privacy}","received_events_url":"https://api.github.com/users/radialine/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/radialine/gold-miner","description":"🥇掘金翻译计划，可能是世界最大最好的英译中技术社区，最懂读者和译者的翻译平台：","fork":true,"url":"https://api.github.com/repos/radialine/gold-miner","forks_url":"https://api.github.com/repos/radialine/gold-miner/forks","keys_url":"https://api.github.com/repos/radialine/gold-miner/keys{/key_id}","collaborators_url":"https://api.github.com/repos/radialine/gold-miner/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/radialine/gold-miner/teams","hooks_url":"https://api.github.com/repos/radialine/gold-miner/hooks","issue_events_url":"https://api.github.com/repos/radialine/gold-miner/issues/events{/number}","events_url":"https://api.github.com/repos/radialine/gold-miner/events","assignees_url":"https://api.github.com/repos/radialine/gold-miner/assignees{/user}","branches_url":"https://api.github.com/repos/radialine/gold-miner/branches{/branch}","tags_url":"https://api.github.com/repos/radialine/gold-miner/tags","blobs_url":"https://api.github.com/repos/radialine/gold-miner/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/radialine/gold-miner/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/radialine/gold-miner/git/refs{/sha}","trees_url":"https://api.github.com/repos/radialine/gold-miner/git/trees{/sha}","statuses_url":"https://api.github.com/repos/radialine/gold-miner/statuses/{sha}","languages_url":"https://api.github.com/repos/radialine/gold-miner/languages","stargazers_url":"https://api.github.com/repos/radialine/gold-miner/stargazers","contributors_url":"https://api.github.com/repos/radialine/gold-miner/contributors","subscribers_url":"https://api.github.com/repos/radialine/gold-miner/subscribers","subscription_url":"https://api.github.com/repos/radialine/gold-miner/subscription","commits_url":"https://api.github.com/repos/radialine/gold-miner/commits{/sha}","git_commits_url":"https://api.github.com/repos/radialine/gold-miner/git/commits{/sha}","comments_url":"https://api.github.com/repos/radialine/gold-miner/comments{/number}","issue_comment_url":"https://api.github.com/repos/radialine/gold-miner/issues/comments{/number}","contents_url":"https://api.github.com/repos/radialine/gold-miner/contents/{+path}","compare_url":"https://api.github.com/repos/radialine/gold-miner/compare/{base}...{head}","merges_url":"https://api.github.com/repos/radialine/gold-miner/merges","archive_url":"https://api.github.com/repos/radialine/gold-miner/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/radialine/gold-miner/downloads","issues_url":"https://api.github.com/repos/radialine/gold-miner/issues{/number}","pulls_url":"https://api.github.com/repos/radialine/gold-miner/pulls{/number}","milestones_url":"https://api.github.com/repos/radialine/gold-miner/milestones{/number}","notifications_url":"https://api.github.com/repos/radialine/gold-miner/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/radialine/gold-miner/labels{/name}","releases_url":"https://api.github.com/repos/radialine/gold-miner/releases{/id}","deployments_url":"https://api.github.com/repos/radialine/gold-miner/deployments","created_at":"2018-04-13T13:27:27Z","updated_at":"2018-04-13T13:27:35Z","pushed_at":"2018-04-20T21:34:25Z","git_url":"git://github.com/radialine/gold-miner.git","ssh_url":"git@github.com:radialine/gold-miner.git","clone_url":"https://github.com/radialine/gold-miner.git","svn_url":"https://github.com/radialine/gold-miner","homepage":"https://juejin.im/tag/掘金翻译计划","size":31472,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":null,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"xitu:master","ref":"master","sha":"8c5d0b41014dc4b52e77c5dafb843a93bdb85333","user":{"login":"xitu","id":10482599,"avatar_url":"https://avatars2.githubusercontent.com/u/10482599?v=4","gravatar_id":"","url":"https://api.github.com/users/xitu","html_url":"https://github.com/xitu","followers_url":"https://api.github.com/users/xitu/followers","following_url":"https://api.github.com/users/xitu/following{/other_user}","gists_url":"https://api.github.com/users/xitu/gists{/gist_id}","starred_url":"https://api.github.com/users/xitu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/xitu/subscriptions","organizations_url":"https://api.github.com/users/xitu/orgs","repos_url":"https://api.github.com/users/xitu/repos","events_url":"https://api.github.com/users/xitu/events{/privacy}","received_events_url":"https://api.github.com/users/xitu/received_events","type":"Organization","site_admin":false},"repo":{"id":45512989,"name":"gold-miner","full_name":"xitu/gold-miner","owner":{"login":"xitu","id":10482599,"avatar_url":"https://avatars2.githubusercontent.com/u/10482599?v=4","gravatar_id":"","url":"https://api.github.com/users/xitu","html_url":"https://github.com/xitu","followers_url":"https://api.github.com/users/xitu/followers","following_url":"https://api.github.com/users/xitu/following{/other_user}","gists_url":"https://api.github.com/users/xitu/gists{/gist_id}","starred_url":"https://api.github.com/users/xitu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/xitu/subscriptions","organizations_url":"https://api.github.com/users/xitu/orgs","repos_url":"https://api.github.com/users/xitu/repos","events_url":"https://api.github.com/users/xitu/events{/privacy}","received_events_url":"https://api.github.com/users/xitu/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/xitu/gold-miner","description":"🥇掘金翻译计划，可能是世界最大最好的英译中技术社区，最懂读者和译者的翻译平台：","fork":false,"url":"https://api.github.com/repos/xitu/gold-miner","forks_url":"https://api.github.com/repos/xitu/gold-miner/forks","keys_url":"https://api.github.com/repos/xitu/gold-miner/keys{/key_id}","collaborators_url":"https://api.github.com/repos/xitu/gold-miner/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/xitu/gold-miner/teams","hooks_url":"https://api.github.com/repos/xitu/gold-miner/hooks","issue_events_url":"https://api.github.com/repos/xitu/gold-miner/issues/events{/number}","events_url":"https://api.github.com/repos/xitu/gold-miner/events","assignees_url":"https://api.github.com/repos/xitu/gold-miner/assignees{/user}","branches_url":"https://api.github.com/repos/xitu/gold-miner/branches{/branch}","tags_url":"https://api.github.com/repos/xitu/gold-miner/tags","blobs_url":"https://api.github.com/repos/xitu/gold-miner/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/xitu/gold-miner/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/xitu/gold-miner/git/refs{/sha}","trees_url":"https://api.github.com/repos/xitu/gold-miner/git/trees{/sha}","statuses_url":"https://api.github.com/repos/xitu/gold-miner/statuses/{sha}","languages_url":"https://api.github.com/repos/xitu/gold-miner/languages","stargazers_url":"https://api.github.com/repos/xitu/gold-miner/stargazers","contributors_url":"https://api.github.com/repos/xitu/gold-miner/contributors","subscribers_url":"https://api.github.com/repos/xitu/gold-miner/subscribers","subscription_url":"https://api.github.com/repos/xitu/gold-miner/subscription","commits_url":"https://api.github.com/repos/xitu/gold-miner/commits{/sha}","git_commits_url":"https://api.github.com/repos/xitu/gold-miner/git/commits{/sha}","comments_url":"https://api.github.com/repos/xitu/gold-miner/comments{/number}","issue_comment_url":"https://api.github.com/repos/xitu/gold-miner/issues/comments{/number}","contents_url":"https://api.github.com/repos/xitu/gold-miner/contents/{+path}","compare_url":"https://api.github.com/repos/xitu/gold-miner/compare/{base}...{head}","merges_url":"https://api.github.com/repos/xitu/gold-miner/merges","archive_url":"https://api.github.com/repos/xitu/gold-miner/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/xitu/gold-miner/downloads","issues_url":"https://api.github.com/repos/xitu/gold-miner/issues{/number}","pulls_url":"https://api.github.com/repos/xitu/gold-miner/pulls{/number}","milestones_url":"https://api.github.com/repos/xitu/gold-miner/milestones{/number}","notifications_url":"https://api.github.com/repos/xitu/gold-miner/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/xitu/gold-miner/labels{/name}","releases_url":"https://api.github.com/repos/xitu/gold-miner/releases{/id}","deployments_url":"https://api.github.com/repos/xitu/gold-miner/deployments","created_at":"2015-11-04T03:29:13Z","updated_at":"2018-04-23T04:15:08Z","pushed_at":"2018-04-22T15:23:50Z","git_url":"git://github.com/xitu/gold-miner.git","ssh_url":"git@github.com:xitu/gold-miner.git","clone_url":"https://github.com/xitu/gold-miner.git","svn_url":"https://github.com/xitu/gold-miner","homepage":"https://juejin.im/tag/掘金翻译计划","size":31737,"stargazers_count":13295,"watchers_count":13295,"language":null,"has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":2367,"mirror_url":null,"archived":false,"open_issues_count":31,"license":null,"forks":2367,"open_issues":31,"watchers":13295,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/xitu/gold-miner/pulls/3665"},"html":{"href":"https://github.com/xitu/gold-miner/pull/3665"},"issue":{"href":"https://api.github.com/repos/xitu/gold-miner/issues/3665"},"comments":{"href":"https://api.github.com/repos/xitu/gold-miner/issues/3665/comments"},"review_comments":{"href":"https://api.github.com/repos/xitu/gold-miner/pulls/3665/comments"},"review_comment":{"href":"https://api.github.com/repos/xitu/gold-miner/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/xitu/gold-miner/pulls/3665/commits"},"statuses":{"href":"https://api.github.com/repos/xitu/gold-miner/statuses/1e3d36405c5d22ee6e1adb19d65522049710f03f"}},"author_association":"NONE"}}
{"actor":{"display_login":"leviding"}}