100天的第10天数据科学训练营从NOOB到专家。
回顾第9天
昨天我们已经详细研究了有关统计的python。
开始吧
可能性
概率是事件发生的可能性的度量。它是0到1之间的数字,其中0表示事件永远不会发生,1表示事件将始终发生。例如,翻转硬币和头部的概率为0.5,因为有50%的人有头脑。
例子:
在公平模具上滚动6的概率是1/6,因为在6个可能的结果中只有1个有利的结果(滚动6)(滚动1、2、3、4、5或6) 。
# Calculation of probability of rolling a 6 on a fair die
p = 1/6
print(p)
0.16666666666666666
随机变量
随机变量是一个变量,可以根据随机事件的结果来接收不同的值。例如,在硬币翻转中获得的头数是一个随机变量,因为它可以根据硬币翻转的结果来处理不同的值(0、1、2等)。
。示例:在硬币翻转中获得的头数是一个随机变量,因为它可以根据硬币翻转的结果采用不同的值(0、1、2等)。
# Creating a list of outcomes for a coin flip
outcomes = ['heads', 'tails']
# Using numpy's random.choice to simulate a coin flip 10 times
import numpy as np
np.random.seed(0)
results = np.random.choice(outcomes, size=10, replace=True)
print(results)
['heads' 'tails' 'tails' 'heads' 'tails' 'tails' 'tails' 'tails' 'tails'
'tails']
计算概率
计算概率是通过计算有利结果的数量并将其除以可能结果的总数来完成的。例如,如果我们想找到翻转硬币并获得头的概率,我们将计算头(1)的数量(1),然后将其除以可能的结果总数(2,头或尾巴)。
示例:如果我们想找到翻转硬币并获得头的概率,我们将计算头(4)的数量(4),然后将其除以可能的结果总数(10)。
# Counting the number of heads in the simulated coin flip results
num_heads = sum(results == 'heads')
# Calculating the probability of getting heads
p = num_heads/len(results)
print(p)
0.2
二项分布
二项式分布是一个概率分布,描述了固定数量的试验中的成功数量。例如,如果我们要将硬币翻转10次,则二项式分布将描述在这10个翻转中获得一定数量的头部的概率。在R中,我们可以使用“ DBINOM”函数来计算固定数量的试验中特定数量成功的概率。
示例:如果我们要翻转一枚硬币10次,二项式分布将描述在这10个翻转中获得一定数量的头的概率。
# Using scipy's binom.pmf to calculate the probability of getting 4 heads in 10 coin flips
from scipy.stats import binom
p = binom.pmf(4, 10, 0.5)
print(p)
0.2050781249999999
连续随机变量
连续随机变量是一个随机变量,可以在给定范围内使用任何值,而不仅仅是离散值。例如,一个人的高度是连续的随机变量,因为它可以在一定范围内采用任何值(例如1至7英尺之间)。
示例:一个人的高度是一个连续的随机变量,因为它可以在一定范围内采用任何值(例如1至7英尺之间)。
# Generating a random sample of heights using numpy's random.normal
np.random.seed(0)
heights = np.random.normal(loc=5, scale=1, size=100)
# Plotting the distribution of heights using matplotlib
import matplotlib.pyplot as plt
plt.hist(heights, bins=20)
plt.xlabel('Height (feet)')
plt.ylabel('Count')
plt.show()
中心极限定理:
中心极限定理指出,无论单个随机变量的分布如何,大量随机变量的平均值分布将大致正常。例如,如果我们要进行平均100个硬币翻转,则中央限制定理告诉我们,即使单独的硬币翻转可能不是。
示例:如果我们平均进行100个硬币翻转,则中央限制定理告诉我们,即使单独的硬币翻转可能不是。
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import norm
# Generating 1000 sets of 100 coin flips using numpy's random.choice
np.random.seed(0)
outcomes = [0, 1]
flips = np.random.choice(outcomes, size=(1000, 100), replace=True)
averages = flips.mean(axis=1)
# Plotting the distribution of averages using matplotlib
mu, std = norm.fit(averages)
plt.hist(averages, bins=20, density=True, alpha=0.6, color='blue', label='Sample Means')
x = np.linspace(0, 1, 100)
plt.plot(x, norm.pdf(x, mu, std), 'r-', lw=2, label='Normal Distribution')
plt.xlabel('Probability of Heads')
plt.ylabel('Count')
plt.legend()
plt.show()
正态分布:
正态分布,也称为高斯分布,是一个连续的概率分布,在平均值周围是对称的。它通常用于对现实世界数据进行建模,例如测试评分或血压水平。在R中,我们可以使用“ DNOR”函数来计算正态分布内特定值的概率密度。
示例:我们可以使用正态分布进行模型测试分数,平均值为75,标准偏差为10。
# Using scipy's norm.pdf to calculate the probability density of a score of 80 in a normal distribution with mu=75 and std=10
from scipy.stats import norm
p = norm.pdf(80, 75, 10)
print(p)
0.03520653267642995
z得分:
z得分用于标准化正态分布内的值,从而可以在不同的数据集之间进行比较。通过从特定值中减去分布的平均值,并除以标准偏差来计算z评分。在R中,我们可以使用函数“比例”来计算数据集中值的z得分。
。示例:我们可以使用scipy的stats.zscore函数来计算数据集中值的z得分,例如在上面的示例中查找测试分数的z得分。
from scipy.stats import zscore
scores = np.random.normal(75, 10, 100)
#Calculating the z-score of a test score of 80
z = zscore(scores)[0]
print(z)
-0.3000028431476816
摘要:
本文概述了机器学习和数据科学背景下概率和统计的关键概念。它首先定义概率并讨论随机变量的概念。然后,文章继续解释了如何计算概率并引入二项式分布。它还涵盖了连续的随机变量和中心极限定理。最后,本文讨论了该领域的正态分布,z得分和一些公开挑战。本文旨在为机器学习和数据科学从业人员提供对概率和统计数据的全面理解。它使用python来解释这些概念并提供示例和示例数据。