統(tǒng)計(jì)學(xué)L8 Python概率練習(xí)(三)

癌癥測(cè)試結(jié)果

一、測(cè)試的問(wèn)題

1.總共有多少病人?
2.多少病人患癌癥?
3.多少病人沒(méi)有患癌癥?
4.患癌癥的病人比例是多少?
5.沒(méi)有患癌癥的病人比例是多少?
6.癌癥患者測(cè)試為陽(yáng)性的病人比例是多少?
7.癌癥患者測(cè)試為陰性的病人比例是多少?
8.非癌癥患者測(cè)試為陽(yáng)性的病人比例是多少?
9.非癌癥患者測(cè)試為陰性的病人比例是多少?
10.檢測(cè)結(jié)果為陽(yáng)性的病人患癌概率
11.檢測(cè)結(jié)果為陽(yáng)性的病人沒(méi)有患癌概率
12.檢測(cè)結(jié)果為陰性的病人患癌概率
13.檢測(cè)結(jié)果為陰性的病人沒(méi)有患癌概率

二、問(wèn)題解決

1.總共有多少病人?

思考路徑:
(1)先導(dǎo)入csv數(shù)據(jù)集,并查看開頭幾行數(shù)據(jù)格式是否合適

import pandas as pd
df = pd.read_csv('cancer_test_data.csv')
df.head()

(2)通過(guò)shape函數(shù)查看人數(shù)

df.shape

數(shù)據(jù)有四列:序號(hào)列;patient_id列;test_result列;has_cancer列

2.多少病人患癌癥?

思考路徑:求has_cancer列為True情況的總數(shù)。

(df.hac_cancer == True).sum()

3.多少病人沒(méi)有患癌癥?

思考路徑:同上一個(gè)問(wèn)題,將True改為False

(df.hac_cancer == False).sum()

4.患癌癥的病人比例是多少?

思考路徑:求比例的方法是將數(shù)據(jù)按照適用條件轉(zhuǎn)換為bool,符合條件為True,不符合條件為False,然后對(duì)條件求mean。求mean時(shí),邏輯為,結(jié)果為True的設(shè)為1,F(xiàn)alse的設(shè)為0,加總后求平均數(shù)就相當(dāng)于計(jì)算符合條件的數(shù)量的比例。

(df.has_cancer == True).mean()

5.沒(méi)有患癌癥的病人比例是多少?

(df.has_cancer == False).mean()

6.癌癥患者測(cè)試為陽(yáng)性的病人比例是多少?

思考路徑:同時(shí)調(diào)取符合條件的兩列,然后計(jì)算均值??紤]使用query函數(shù),前一個(gè)是基礎(chǔ)事件。

(df.query('has_cancer')['test_result'] == 'Positive').mean()

相當(dāng)于先用query調(diào)?。篽as_cancer列,然后在該列的基礎(chǔ)上篩選符合條件的['test_result'] == 'Positive'數(shù)據(jù)。
df正常調(diào)用test_result == ''
Positive時(shí)表達(dá)式是:df.test_result == Positive
現(xiàn)在將兩個(gè)條件直接并列即可。
query函數(shù)后只能調(diào)用str,所以需要將test_result == Positive轉(zhuǎn)變?yōu)閟tr格式。

7.癌癥患者測(cè)試為陰性的病人比例是多少?

思考路徑:同上一道題,

(df.query('has_cancer')['test_result'] == 'Negative').mean()

8.非癌癥患者測(cè)試為陽(yáng)性的病人比例是多少?

(df.query('has_cancer == False')['test_result'] == 'Positive').mean()

9.非癌癥患者測(cè)試為陰性的病人比例是多少?

(df.query('has_cancer == False')['test_result'] == 'Negative').mean()

10.檢測(cè)結(jié)果為陽(yáng)性的病人患癌概率

(df.query(" test_result == 'Positive' ")['has_cancer']).mean()

11.檢測(cè)結(jié)果為陽(yáng)性的病人沒(méi)有患癌概率

1 - (df.query(" test_result == 'Positive' ")['has_cancer']).mean()

12.檢測(cè)結(jié)果為陰性的病人患癌概率

(df.query(" test_result == 'Negative' ")['has_cancer']).mean()

13.檢測(cè)結(jié)果為陰性的病人沒(méi)有患癌概率

1 - (df.query(" test_result == 'Negative' ")['has_cancer']).mean()

三、總結(jié)

這次練習(xí)中重點(diǎn)是如何通過(guò)query同時(shí)調(diào)用兩列數(shù)據(jù),第一列數(shù)據(jù)用( ),第二列數(shù)據(jù)用[ ]。query函數(shù)后跟的是str型數(shù)據(jù),其他型數(shù)據(jù)會(huì)報(bào)錯(cuò)。

另外python比手工計(jì)算貝葉斯更快,而且方便理解,沒(méi)有更多的計(jì)算路徑,直接調(diào)取前后調(diào)取不同的數(shù)據(jù)即可。

這是Udacity數(shù)據(jù)分析(入門)課程的統(tǒng)計(jì)學(xué)lesson8的學(xué)習(xí)筆記三
Lesson8的課程學(xué)習(xí)結(jié)束
轉(zhuǎn)載請(qǐng)注明出處

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • pyspark.sql模塊 模塊上下文 Spark SQL和DataFrames的重要類: pyspark.sql...
    mpro閱讀 9,922評(píng)論 0 13
  • 一個(gè)冬天的中午,晴日朗朗,冷風(fēng)飄飄。在靠近海邊的一個(gè)城市,一家牛肉板面館在居民區(qū)內(nèi)的小胡同邊剛開始營(yíng)業(yè),一對(duì)中年夫...
    滿洪存閱讀 202評(píng)論 0 0
  • 老馬說(shuō)我喜歡大只的女孩 我媽喜歡握著我的手說(shuō)話 我喜歡暖洋洋地曬太陽(yáng)
    與榮閱讀 165評(píng)論 3 0
  • ▲ 點(diǎn)擊藍(lán)字“倍增先生蘇摩”關(guān)注商業(yè)倍增經(jīng)驗(yàn)! 前 言 我們的口號(hào):"增加流量,增加粉絲,增加轉(zhuǎn)化率"互聯(lián)網(wǎng)公式:...
    倍增先生閱讀 559評(píng)論 0 0

友情鏈接更多精彩內(nèi)容