统计和 Pandas:Pandas 中的 value_counts() 中的规范化意味着什么
Statistics and Pandas: What normalization means in value_counts() in Pandas
问题不在于编码,而在于了解规范化在统计和数据相关性方面的含义
这是我正在做的一个例子。
没有归一化:
plt.subplot(111)
plt.plot(df['alcoholism'].value_counts(), marker='o')
plt.plot(df.query('no_show =="Yes"')['alcoholism'].value_counts(), color='black')
plt.show();
标准化后:
plt.subplot(111)
plt.plot(df['alcoholism'].value_counts(normalize=True), marker='o')
plt.plot(df.query('no_show =="Yes"')['alcoholism'].value_counts(normalize=True), color='black')
plt.show();
哪个更好地关联了标准化或未标准化的值?或者这是一个完全错误的想法?
我是数据和 pandas 的新手,所以请原谅我的错误代码、链接、评论、风格 :)
正如您在标准化时看到的(第二个图),对于绘制的每条线,两个点的总和等于 1。规范化为您提供每个值的 率 出现次数,而不是 数量 出现次数。
这是 the doc 所说的:
normalize : bool, default False
Return proportions rather than frequencies.
value_counts()
可能 returns 类似于:
0 110000
1 1000
dtype: int64
和value_counts(normalize=True)
可能returns类似:
0 0.990991
1 0.009009
dtype: float64
换句话说,规范化和非规范化之间的关系可以检查为:
>>> counts = df['alcoholism'].value_counts()
>>> rate = df['alcoholism'].value_counts(normalize=True)
>>> np.allclose(rate, counts / counts.sum())
True
其中 允许正确比较两个浮点数系列。
问题不在于编码,而在于了解规范化在统计和数据相关性方面的含义 这是我正在做的一个例子。 没有归一化:
plt.subplot(111)
plt.plot(df['alcoholism'].value_counts(), marker='o')
plt.plot(df.query('no_show =="Yes"')['alcoholism'].value_counts(), color='black')
plt.show();
标准化后:
plt.subplot(111)
plt.plot(df['alcoholism'].value_counts(normalize=True), marker='o')
plt.plot(df.query('no_show =="Yes"')['alcoholism'].value_counts(normalize=True), color='black')
plt.show();
哪个更好地关联了标准化或未标准化的值?或者这是一个完全错误的想法? 我是数据和 pandas 的新手,所以请原谅我的错误代码、链接、评论、风格 :)
正如您在标准化时看到的(第二个图),对于绘制的每条线,两个点的总和等于 1。规范化为您提供每个值的 率 出现次数,而不是 数量 出现次数。
这是 the doc 所说的:
normalize : bool, default False
Return proportions rather than frequencies.
value_counts()
可能 returns 类似于:0 110000 1 1000 dtype: int64
和
value_counts(normalize=True)
可能returns类似:0 0.990991 1 0.009009 dtype: float64
换句话说,规范化和非规范化之间的关系可以检查为:
>>> counts = df['alcoholism'].value_counts()
>>> rate = df['alcoholism'].value_counts(normalize=True)
>>> np.allclose(rate, counts / counts.sum())
True
其中