小白必看的经典机器学习入门项目

我们看到美国总统的平均身高是182厘米,或略低于6英尺。当然,有时查看这些数据的可视化表示会更有用,我们可以使用Matplotlib中的工具来完成:

import matplotlib.pyplot as plt
import seaborn as sns
sns.set()
plt.hist(height)
plt.title("Height Distribution of Presidents of USA")
plt.xlabel("height(cm)")
plt.ylabel("Number")
plt.show()

这些集合是探索性数据科学的一些基本部分,我们将在以后的项目中更深入地探讨。

3.出生率分析

让我们来看看美国疾病控制中心 (CDC) 提供的免费出生数据。这些数据可以在born s.csv中找到

链接:https://pan.baidu.com/s/1lrCuMvGGqtxfmuVHocZCpA
提取码:8ovj

import pandas as pd
births = pd.read_csv("births.csv") print(births.head()) births['day'].fillna(0, inplace=True) births['day'] = births['day'].astype(int)

births['decade'] = 10 \* (births['year'] // 10)
births.pivot_table('births', index='decade', columns='gender', aggfunc='sum')
print(births.head())

我们立即看到,每十年男性出生数超过女性出生数。为了更清楚地看到这一趋势,我们可以使用Pandas 中的内置绘图工具来可视化按年出生的总数:

import matplotlib.pyplot as plt
import seaborn as sns
sns.set()
birth_decade = births.pivot_table('births', index='decade', columns='gender', aggfunc='sum')
birth_decade.plot()
plt.ylabel("Total births per year")
plt.show()

3.1 进一步数据探索:

这里有一些有趣的特性,我们可以使用Pandas工具从这个数据集中提取出来。我们必须从清理数据开始,删除由于输入错误的日期或丢失的值而引起的异常值。一个简单的方法是一次性删除这些异常值,我们将通过一个健壮的sigma-clipping操作来做到这一点:

import numpy as np
quartiles = np.percentile(births['births'], [25, 50, 75])
mu = quartiles[1]
sig = 0.74 \* (quartiles[2] - quartiles[0])

最后这条线是样本均值的稳健估计,其中0.74来自高斯分布的四分位数范围。这样我们就可以使用query()方法来过滤出这些值之外的诞生行:

births = births.query('(births > @mu - 5 \* @sig) & (births < @mu + 5 \* @sig)')
births['day'] = births['day'].astype(int)
births.index = pd.to_datetime(10000 \* births.year +
                              100 \* births.month +
                              births.day, format='%Y%m%d')

births['dayofweek'] = births.index.dayofweek

利用这个数据,我们可以连续几十年按工作日计算出生人数:

births.pivot_table('births', index='dayofweek',
                    columns='decade', aggfunc='mean').plot()
plt.gca().set_xticklabels(
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值