Laurens van der Maaten的Python T-SNE实现

时间:2018-10-24 05:36:37

标签: python machine-learning data-visualization

我正在阅读T-SNE的Python实现的源代码。 (https://lvdmaaten.github.io/tsne/code/tsne_python.zip

我对Hbeta函数的实现感到困惑。在计算熵时,作者使用以下代码行。

    public void CFExport(string jsonFile)
    {
        string ItemIDField;
        string ItemIDValue;

            using (StreamReader r = new StreamReader(jsonFile))
            {
                JsonSerializer s = new JsonSerializer();
                var Idx = (JSONMain)s.Deserialize(r, typeof(JSONMain));
                var flds = (Fields)s.Deserialize(r, typeof(Fields));

                if (flds != null)
                {
                    foreach (var _field in flds.Field)
                    {
                        ItemIDField = _field.Name;
                        ItemIDValue = _field.Value;
                    }
                }
            }
    }


public class JSONMain
{
    public Index Index { get; set; }
}

public class Index
{
    public string LibraryName { get; set; }
    public string FormName { get; set; }
    public string User { get; set; }
    public string FilingPriority { get; set; }
    public string FileDescription { get; set; }

}

public class Fields
{
    public List<Field> Field { get; set; }
}

public class Field
{ 
    public string Name { get; set; }
    public string Value { get; set; }

}

我在论文中找不到相应的公式。相反,计算熵的公式为:

enter image description here

似乎H的计算和公式不匹配。

有人可以向我解释我错过了什么吗?

H = np.log(sumP) + beta * np.sum(D * P) / sumP

0 个答案:

没有答案