數(shù)據(jù)分析課程基本結(jié)束,之前用python做的統(tǒng)計(jì)學(xué)作業(yè)只用截圖打了卡帽氓,想到留了不少問題待解決楷拳,這次回顧就將三次作業(yè)合并成了一篇錯(cuò)誤匯總绣夺,做個(gè)記錄,以便日后查閱欢揖。
第一次用python陶耍,很多問題都是初級(jí)問題,解決了就好她混,但也留下很多不影響作業(yè)完成度但是影響作業(yè)質(zhì)量的問題烈钞,這次回顧填了幾個(gè)坑,同時(shí)又發(fā)現(xiàn)了新坑产上,填坑無止境棵磷,Mark一下先。
反復(fù)碰到的問題晋涣,有必要單獨(dú)列明以作時(shí)刻提醒仪媒。
正確輸入
定義文件和變量
正確輸入怎么這么困難?參考課件照著敲都會(huì)敲錯(cuò)谢鹊,不是漏了字母就是標(biāo)點(diǎn)格式不對(duì)算吩,上下反復(fù)核對(duì),重復(fù)N次竟然開始懷疑智商佃扼,合理謹(jǐn)慎懷疑找茬游戲就是程序員開發(fā)出來讓非程序員體驗(yàn)其受虐感受的偎巢。
定義文件和變量,默默重復(fù)三遍兼耀。后面長(zhǎng)段代碼輸完压昼,一敲回車,報(bào)錯(cuò)的大段文字跳出來瘤运,翻到最下面的提示經(jīng)常就是文件找不到窍霞,變量沒有定義,看著代碼無情的在嘲笑你不懂計(jì)算機(jī)邏輯拯坟。
解決方案想來就只有重復(fù)操練但金,形成肌肉記憶,再系統(tǒng)學(xué)習(xí)理論加深理解郁季。
具體問題匯總
按照作業(yè)分成三部分冷溃,最后一部分外加整理了推論統(tǒng)計(jì)作業(yè)用到的圖表供以后查閱钱磅。
1直方圖--Weight & AirPassengers
2.正態(tài)分布--IQ & Stakes Time
3.推論統(tǒng)計(jì)--拋硬幣假設(shè) & GRE成績(jī)的總體均值和總計(jì)標(biāo)準(zhǔn)差 | 推論統(tǒng)計(jì)圖
1-1.案例Weight
第一次用python誓酒,問題最多势木,N遍才做出上圖,問題如下:
Q1. 路徑問題
A1: 數(shù)據(jù)文件要放在notebook同一個(gè)路徑下面坎炼,notebook先保存到本地
Q2. 中英文輸入切換
A2: 都是輸入錯(cuò)誤菠净。 ' ' 這種中英文符號(hào)雖然看起來一樣禁舷,但是需要英文輸入法才能認(rèn),注意輸入法的切換毅往。
現(xiàn)在知道了牵咙,看到黑色的就不對(duì)了,正確的是紅色的攀唯。
python的默認(rèn)代碼顏色有不同含義洁桌,能幫助認(rèn)出明顯的輸入錯(cuò)誤。找的資料如下侯嘀,橙色的還沒見過另凌。
注釋:紅色
關(guān)鍵字:橙色
函數(shù):紫色
字符串:綠色
賦值語句:黑色
Q3. 中文顯示不出
作業(yè)時(shí)嘗試了幾個(gè)方法,都沒有解決戒幔,就用了英文標(biāo)題吠谢。后來群里專門討論了這個(gè)問題,這次就想把這個(gè)坑填上诗茎。
翻遍了同學(xué)關(guān)于中文顯示的方案工坊,因?yàn)楦霃母旧辖鉀Q,所以參考了李佳同學(xué)在windows上的解決方案敢订,結(jié)果用到mac上王污,把字體文件放進(jìn)matplotlib的字體庫,修改matplotlibrc配置文件楚午,最后都以失敗告終昭齐,不知道是系統(tǒng)問題還是操作有誤。
后來在網(wǎng)站上找的一段別人在mac上成功的code矾柜,還是沒用阱驾。
最終放棄從根本解決問題,參考了問題匯總文檔怪蔑,定義myfont啊易,調(diào)用系統(tǒng)字庫顯示出了中文。
但有個(gè)紅框彈出說找不到Font family饮睬,在之前修改配置文件見過,不知道是不是和之前動(dòng)過配置文件有關(guān)篮奄,搜了一圈沒找到解決方案捆愁,以后再研究割去。Mark#1。
Q4. 直方圖間距沒有分隔
A4:這個(gè)問題群里給了解決方案都解決了rwidth=0.9昼丑,但是書里的直方圖大多是不分隔的呻逆,所以不糾結(jié)了,分隔只是為了顯示效果菩帝。
翻了《深入淺出統(tǒng)計(jì)學(xué)》直方圖相關(guān)章節(jié)咖城,反而厘清了一個(gè)之前沒意識(shí)到的混淆的概念--直方圖不是條形圖。
為什么會(huì)有這種混淆呼奢?python搞不定宜雀,自然就想到用熟悉的excel了,其中常用的條形圖和直方圖長(zhǎng)的一樣就以為是一樣的圖握础。實(shí)際上條形圖中的x軸和y軸是不同維度的數(shù)據(jù)辐董,條形圖反應(yīng)的是兩者的對(duì)應(yīng)關(guān)系,但直方圖分析的是一個(gè)維度的數(shù)據(jù)集禀综,用面積表示简烘,通過固定寬度然后顯示長(zhǎng)度,表示這個(gè)數(shù)據(jù)集里單個(gè)數(shù)據(jù)的頻數(shù)定枷。完全不一樣的含義孤澎。
1-2.AirPassengers
根據(jù)Weight的案例照著出圖,但是圖畫出來只是第一步欠窒,數(shù)據(jù)為了分析而收集覆旭,然后分析數(shù)據(jù)時(shí)就碰到了問題。
這個(gè)直方圖顯示了所有月份乘客的頻數(shù)高低贱迟,沒有規(guī)律姐扮,也不像Weight的正態(tài)分布。再看了下數(shù)據(jù)衣吠,49年到60年每個(gè)月的乘客數(shù)量茶敏,因此乘客數(shù)量更有可能和時(shí)間維度相關(guān),這時(shí)想用python嘗試畫和時(shí)間關(guān)系的條形圖缚俏,但是為了正確顯示日期格式捯飭半天無果惊搏,又留一個(gè)坑,作業(yè)先用excel做了:整理了月乘客數(shù)量和年乘客數(shù)量忧换,做成條形圖恬惯,乘客數(shù)量和時(shí)間相關(guān),并做了分析亚茬。
因?yàn)橹肮善狈治鲎鳂I(yè)碰到過python的時(shí)間格式顯示問題酪耳,因此這次可以解決時(shí)間顯示問題,但是發(fā)現(xiàn)時(shí)間格式的代碼不是所有情況都適用。
Q5. 時(shí)間格式的顯示
A5:根據(jù)股票分析作業(yè)DrFish給的關(guān)于時(shí)間格式的建議
把這行代碼用到AirPassengers數(shù)據(jù)中
parse_dates=[0]
結(jié)果出現(xiàn)了穿越未來的神奇效果:
這個(gè)是上世紀(jì)的數(shù)據(jù)碗暗,現(xiàn)在默認(rèn)21世紀(jì)颈将,時(shí)間就不對(duì)了,后來網(wǎng)上找了個(gè)方案試了下言疗,把那個(gè)[0]改成True解決了晴圾。不知以后True是否可以通用。Mark#2噪奄。
時(shí)間顯示搞定死姚,然后就可以用python做條形圖了,用bar試了一下勤篮,成功出圖都毒。又發(fā)現(xiàn)x軸顯示數(shù)據(jù)不完全,也是可以自定義的叙谨,但是沒搞定温鸽。Mark#3
這兩份數(shù)據(jù)是excel整理的,看到有同學(xué)說用python切片方式可以分類數(shù)據(jù)分析的手负,先敬仰一下涤垫,以后填坑。Mark#4竟终。
2-1.案例IQ
也是N遍出圖蝠猬,N次錯(cuò)誤還是包括輸入錯(cuò)誤。
出錯(cuò)的圖:
正態(tài)分布的概率密度函數(shù)曲線去哪兒了统捶?還是藍(lán)色的榆芦?以為這個(gè)巨長(zhǎng)的公式打錯(cuò)了,敲兩遍核對(duì)兩遍終于在要抓狂的時(shí)候發(fā)現(xiàn)這個(gè)函數(shù)輸入是對(duì)的喘鸟,是下面畫圖輸出時(shí)候漏了一行plt.plot(x,y)
這行是第二個(gè)數(shù)據(jù)集的函數(shù)匆绣,因此漏了這個(gè)就沒有第二個(gè)數(shù)據(jù)的圖了。
正確輸入后正態(tài)分布曲線是藍(lán)色什黑, 直方圖變成了桔色崎淳,因此發(fā)現(xiàn)matplotlib默認(rèn)的第一個(gè)顏色是藍(lán)色的,第二個(gè)是桔色的愕把。當(dāng)然可以自定義想要的顏色拣凹。
2-2.Stakes Time
參照IQ案例出的圖。
Q6.arange函數(shù)不同的數(shù)值恨豁。
最先做出來的各種形狀:
A6: arange函數(shù)用于創(chuàng)建等差數(shù)組嚣镜。嘗試調(diào)整了arange函數(shù)括號(hào)內(nèi)三個(gè)數(shù)值(起始值,終值橘蜜,步長(zhǎng))菊匿,最后把步長(zhǎng)調(diào)整成0.1才有最后的曲線。
對(duì)比了IQ的數(shù)據(jù),標(biāo)準(zhǔn)差15捧请,步長(zhǎng)1凡涩,而Stakes Time的標(biāo)準(zhǔn)差很小,只有1.6疹蛉,因此步長(zhǎng)可以調(diào)更小,曲線才比較光滑力麸。標(biāo)準(zhǔn)差小也說明選手水平差不多可款,競(jìng)爭(zhēng)激烈。
3-1.拋硬幣假設(shè)
3-2.成績(jī)的總體均值和總計(jì)標(biāo)準(zhǔn)差
這次作業(yè)像是在解數(shù)學(xué)題克蚂。
3-1參照課件解題闺鲸,但是假設(shè)檢驗(yàn)的應(yīng)用不了解。Mark#5
3-2翻書解題埃叭,python只是當(dāng)做計(jì)算器來用了摸恍,函數(shù)還不會(huì),但仍然謝謝Dr.fish給的建議:
在程序中最好多用變量來代替數(shù)值赤屋,不僅可以少打字立镶,含義也更加明確,而且當(dāng)改變初始值時(shí)無需改動(dòng)太大类早。
看了Dr.fish用自定義的函數(shù)完成的媚媒,只看懂了說明看不懂代碼。Mark#6
統(tǒng)計(jì)學(xué)用到的python錯(cuò)誤匯總涩僻,二刷后的問題清單:
Mark#1 不用每次輸入代碼徹底解決中文顯示缭召。
Mark#2 時(shí)間數(shù)據(jù)顯示的兩個(gè)代碼區(qū)別。
Mark#3 橫軸完全顯示數(shù)據(jù)逆日。
Mark#4 部分?jǐn)?shù)據(jù)的計(jì)算分析統(tǒng)計(jì)嵌巷。
Mark#5 假設(shè)檢驗(yàn)/統(tǒng)計(jì)學(xué)。
Mark#6 推論統(tǒng)計(jì)中的函數(shù)應(yīng)用室抽。
Mark#7 股票分析中最終圖也沒能用python畫出來搪哪,記錄在這里以后一起復(fù)習(xí)。
每次解決一部分狠半,留待三刷噩死。希望這個(gè)列表能越來越短。
推論統(tǒng)計(jì)整理 | 統(tǒng)計(jì)學(xué)
python問題匯總完神年,再整理了下作業(yè)用到的推論統(tǒng)計(jì)相關(guān)知識(shí)已维。
推論統(tǒng)計(jì)的作業(yè)理解起來有點(diǎn)難, 但是看完《大話統(tǒng)計(jì)學(xué)》中的三張圖已日,基本解決問題:
統(tǒng)計(jì)推論功能地圖列出了統(tǒng)計(jì)推論的各種條件和解法垛耳。
總體均值的區(qū)間估計(jì)列出了各種已知條件求未知的情況。
總體方差的區(qū)間估計(jì)列出了常用的使用場(chǎng)景和公式。
沒有看到這三張表之前堂鲜,都沒有概念推論統(tǒng)計(jì)要解決什么問題栈雳,所以題目也沒理解。但是第一張圖非常清楚的匯總了各種不同方案缔莲,用已知求未知哥纫,以后碰到不同已知情況都可以照著解決。
有這個(gè)思路再看題目就簡(jiǎn)單了痴奏,即根據(jù)樣本推測(cè)總體蛀骇,已知樣本數(shù)量n=30,樣本均值μ=1082读拆,樣本標(biāo)準(zhǔn)差 s=108擅憔,求總體均值和總體標(biāo)準(zhǔn)差的95%和99%的置信區(qū)間。根據(jù)以上的公式把數(shù)據(jù)代入就能解題了檐晕。
統(tǒng)計(jì)學(xué)剛和概率只是剛?cè)腴T暑诸,還是要專門安排時(shí)間通讀一遍。
另外深入淺出系列的書個(gè)人比較喜歡辟灰,統(tǒng)計(jì)學(xué)和數(shù)據(jù)分析都是案例講法个榕,有場(chǎng)景,有問題伞矩,有練習(xí)笛洛,很適合入門,作為數(shù)據(jù)分析課的補(bǔ)充乃坤。
最后關(guān)于python學(xué)習(xí)的個(gè)人計(jì)劃苛让。
python是數(shù)據(jù)分析的一個(gè)重要工具,課程期間一直沒有優(yōu)先學(xué)習(xí)python湿诊,而是把重點(diǎn)放在了數(shù)據(jù)分析上狱杰,因?yàn)楦杏X編程可能要花一段比較長(zhǎng)的時(shí)間。目前是碰到要用的代碼先敲起來厅须,后面再集中學(xué)習(xí)理論和實(shí)踐操練仿畸,好處是比上來讀一本枯燥的理論書更容易持續(xù),不怎么抗拒看代碼了朗和。
編程作為一門技能需要大量操練错沽,但依然想從底層的理論獲得點(diǎn)全局概念支撐。
比如上面的中文顯示問題眶拉,對(duì)計(jì)算機(jī)原理和軟件運(yùn)行一無所知千埃,怎么會(huì)有把字體復(fù)制到軟件相應(yīng)文件夾里這種思路?即使搜索出各種解決方案忆植,目前也沒有能力判斷哪個(gè)方案更靠譜放可,只能一個(gè)一個(gè)試谒臼,解決問題先,但是長(zhǎng)遠(yuǎn)來看依然需要判斷力來提高解決問題的效率耀里。
學(xué)點(diǎn)理論能有個(gè)起碼的計(jì)算機(jī)思維蜈缤,能讀懂別人的代碼。編程少不了排錯(cuò)冯挎,沒有全局觀容易進(jìn)死胡同底哥,效率低還解決不了問題。
聽過一個(gè)IT界的故事房官,某企業(yè)宕機(jī)叠艳,工程師們一直排錯(cuò)無果,老板只好重金$1000請(qǐng)了個(gè)技術(shù)大牛易阳,專家分析之后在機(jī)器的某個(gè)地方畫了根線就收工了。老板不解吃粒,質(zhì)問專家潦俺,$1000就劃了根線? 專家答徐勃,劃線只要$1事示,但是在哪里劃線值$999。 企業(yè)宕機(jī)損失以秒為單位計(jì)僻肖,所以如果不知道在哪里劃線肖爵,那么就花錢解決。反過來說如果剛好你就是那個(gè)知道在哪里劃線的人臀脏,賺錢的機(jī)會(huì)也比別人多點(diǎn)不是么劝堪?
扯得好遠(yuǎn)。所以個(gè)人計(jì)劃是先看別人推薦的麻省理工學(xué)院公開課:《計(jì)算機(jī)科學(xué)及編程導(dǎo)論》揉稚。這個(gè)課針對(duì)沒有編程經(jīng)驗(yàn)的人秒啦,理解計(jì)算機(jī)在解決問題中的作用,正好用python語言教搀玖,不過不是專門教python的課程余境,主要講計(jì)算機(jī)思維,如何像計(jì)算機(jī)科學(xué)家一樣思考灌诅,挺適合我的芳来,先看了兩集,要配合練習(xí)猜拾,一周一集即舌,24周,年底前刷完关带。
再來《利用Python進(jìn)行數(shù)據(jù)分析》侥涵,前言就說需要一定編程基礎(chǔ)沼撕,所以打算之后一邊刷基礎(chǔ),一邊再來實(shí)踐這本芜飘。之前碰到直方圖的問題翻了下想看看有沒有解決方案务豺,但是因?yàn)椴皇且越鉀Q實(shí)際碰到的問題為主,還是搜索更有針對(duì)性嗦明。這本書沒具體操練過笼沥,時(shí)間不好估計(jì),看到有同學(xué)刷完的娶牌,有人分享下感受么奔浅?
今年計(jì)劃先這樣,趕不上變化是肯定的诗良。因?yàn)樘╅w志又要開新課了汹桦,就醬。