數據科學實戰pdf
Ⅰ 怎樣進行大數據的入門級學習
怎樣進行大數據的入門級學習?
文 | 郭小賢
數據科學並沒有一個獨立的學科體系,統計學,機器學習,數據挖掘,資料庫,分布式計算,雲計算,信息可視化等技術或方法來對付數據。
但從狹義上來看,我認為數據科學就是解決三個問題:
1. datapre-processing;(數據預處理)
2. datainterpretation;(數據解讀)
3.datamodeling and analysis.(數據建模與分析)
這也就是我們做數據工作的三個大步驟:
1、原始數據要經過一連串收集、提取、清洗、整理等等的預處理過程,才能形成高質量的數據;
2、我們想看看數據「長什麼樣」,有什麼特點和規律;
3、按照自己的需要,比如要對數據貼標簽分類,或者預測,或者想要從大量復雜的數據中提取有價值的且不易發現的信息,都要對數據建模,得到output。
這三個步驟未必嚴謹,每個大步驟下面可能依問題的不同也會有不同的小步驟,但按我這幾年的經驗來看,按照這個大思路走,數據一般不會做跑偏。
這樣看來,數據科學其實就是門復合型的技術,既然是技術就從編程語言談起吧,為了簡練,只說說R和Python。但既然是薦數據科學方面的書,我這里就不提R/Python編程基礎之類的書了,直接上跟數據科學相關的。
R programming
如果只是想初步了解一下R語言已經R在數據分析方面的應用,那不妨就看看這兩本:
R inaction:我的R語言大數據101。其實對於一個沒有任何編程基礎的人來說,一開始就學這本書,學習曲線可能會比較陡峭。但如果配合上一些輔助材料,如官方發布的R basics(http://cran.r-project.org/doc/contrib/usingR.pdf),stackoverflow上有tag-R的問題集(Newest 『r』 Questions),遇到復雜的問題可在上面搜索,總會找到解決方案的。這樣一來,用這本書拿來入門學習也問題不大。而且這本書作者寫得也比較輕松,緊貼實戰。
Dataanalysis and graphics using R:使用R語言做數據分析的入門書。這本書的特點也是緊貼實戰,沒有過多地講解統計學理論,所以喜歡通過情境應用來學習的人應該會喜歡這本入門書。而且這本書可讀性比較強,也就是說哪怕你手頭沒電腦寫不了代碼,有事沒事拿出這本書翻一翻,也能讀得進去。
但如果你先用R來從事實實在在的數據工作,那麼上面兩本恐怕不夠,還需要這些:
Modernapplied statistics with S:這本書里統計學的理論就講得比較多了,好處就是你可以用一本書既復習了統計學,又學了R語言。(S/Splus和R的關系就類似於Unix和Linux,所以用S教程學習R,一點問題都沒有)
Datamanipulation with R:這本書實務性很強,它教給你怎麼從不同格式的原始數據文件里讀取、清洗、轉換、整合成高質量的數據。當然和任何一本注重實戰的書一樣,本書也有豐富的真實數據或模擬數據供你練習。對於真正從事數據處理工作的人來說,這本書的內容非常重要,因為對於任何研究,一項熟練的數據預處理技能可以幫你節省大量的時間和精力。否則,你的研究總是要等待你的數據。
RGraphics Cookbook:想用R做可視化,就用這本書吧。150多個recipes,足以幫你應付絕大多數類型的數據。以我現在極業余的可視化操作水平來看,R是最容易做出最漂亮的圖表的工具了。
Anintroction to statistical learning with application in R:這本書算是著名的the element of statistical learning的姊妹篇,後者更注重統計(機器)學習的模型和演算法,而前者所涉及的模型和演算法原沒有後者全面或深入,但卻是用R來學習和應用機器學習的很好的入口。
Ahandbook of statistical analysis using R:這本書內容同樣非常扎實,很多統計學的學生就是用這本書來學慣用R來進行統計建模的。
Python
Think Python,ThinkStats,Think Bayes:這是AllenB. Downey寫的著名的Think X series三大卷。其實是三本精緻的小冊子,如果想快速地掌握Python在統計方面的操作,好好閱讀這三本書,認真做習題,答案鏈接在書里有。這三本書學通了,就可以上手用Python進行基本的統計建模了。
PythonFor Data Analysis: 作者是pandas的主要開發者,也正是Pandas使Python能夠像R一樣擁有dataframe的功能,能夠處理結構比較復雜的數據。這本書其實analysis講得不多,說成數據處理應該更合適。掌握了這本書,處理各種糟心的數據就問題不大了。
Introctionto Python for Econometrics, Statistics and DataAnalysis:這本書第一章就告訴你要安裝Numpy, Scipy, Matplotlib, Pandas, IPython等等。然後接下來的十好幾章就是逐一介紹這幾個庫該怎麼用。很全面,但讀起來比較枯燥,可以用來當工具書。
PracticalData Analysis: 這本書挺奇葩,貌似很暢銷,但作者把內容安排得東一榔頭西一棒子,什麼都講一點,但一個都沒講透。這本書可以作為我們學習數據分析的一個索引,看到哪塊內容有意思,就順著它這個藤去摸更多的瓜。
PythonData Visualization Cookbook: 用Python做可視化的教材肯定不少,我看過的也就這一本,覺得還不錯。其實這類書差別都不會很大,咬住一本啃下來就是王道。
Exploratory Data Analysis 和 Data Visualization
Exploratory DataAnalysis:John Tukey寫於1977年的經典老教材,是這一領域的開山之作。如今EDA已經是統計學里的重要一支,但當時還是有很多人對他的工作不屑一顧。可他愛數據,堅信數據可以以一種出人意料的方式呈現出來。正是他的努力,讓數據可視化成為一門無比迷人的技術。但這本書不推薦閱讀了,內容略過時。要想完整地了解EDA,推薦下一本:
ExploratoryData Analysis with MATLAB:這本書雖然標題帶了個MATLAB,但實際上內容幾乎沒怎麼講MATLAB,只是每講一個方法的時候就列出對應的MATALB函數。這本書的重要之處在於,這是我讀過的講EDA最系統的一本書,除了對visualization有不輸於John Tucky的講解外,對於高維的數據集,通過怎樣的方法才能讓我們從中找到潛在的pattern,這本書也做了詳盡的講解。全書所以案例都有對應的MATALB代碼,而且還提供了GUI(圖形用戶界面)。所以這本書學起來還是相當輕松愉悅的。
VisualizeThis:中譯本叫「鮮活的數據」,作者是個「超級數據迷」,建立了一個叫http://flowingdata.com的網頁展示他的數據可視化作品,這本書告訴你該選擇什麼樣的可視化工具,然後告訴你怎樣visualize關系型數據、時間序列、空間數據等,最後你就可以用數據講故事了。如果你只想感受一下數據可視化是個什麼,可以直接點開下面這個鏈接感受下吧!A tour through the visualization zoo(A TourThrough the Visualization Zoo)
Machine Learning & Data Mining
這一塊就不多說了,不是因為它不重要,而是因為它太太太重要。所以這一部分就推兩本書,都是」世界名著「,都比較難讀,需要一點點地啃。這兩本書拿下,基本就算是登堂入室了。其實作為機器學習的延伸和深化,概率圖模型(PGM)和深度學習(deep learning)同樣值得研究,特別是後者現在簡直火得不得了。但PGM偏難,啃K.Daphne那本大作實在太燒腦,也沒必要,而且在數據領域的應用也不算很廣。deep learning目前工業界的步子邁得比學術界的大,各個domain的應用如火如荼,但要有公認的好教材問世則還需時日,所以PGM和deep learning這兩塊就不薦書了。
TheElement of Statistical Learning:要學機器學習,如果讓我只推薦一本書,我就推薦這本巨著。Hastie、Tibshirani、Friedman這三位大牛寫書寫得太用心了,大廈建得夠高夠大,結構也非常嚴謹,而且很有前瞻性,納入了很多前沿的內容,而不僅僅是一部綜述性的教材。(圖表也做得非常漂亮,應該是用R語言的ggplot2做的。)這本書注重講解模型和演算法本身,所以需要具備比較扎實的數理基礎,啃起這本書來才不會太吃力。事實上掌握模型和演算法的原理非常重要。機器學習(統計學習)的庫現在已經非常豐富,即使你沒有完全搞懂某個模型或演算法的原理和過程,只要會用那幾個庫,機器學習也能做得下去。但你會發現你把數據代進去,效果永遠都不好。但是,當你透徹地理解了模型和演算法本身,你再調用那幾個庫的時候,心情是完全不一樣的,效果也不一樣。
DataMining: Concepts and Techniques, by Jiawei Han and Micheline Kamber 數據挖掘的教材汗牛充棟,之所以推薦這本韓家煒爺爺的,是因為雖然他這本書的出發點是應用,但原理上的內容也一點沒有落下,內容非常完整。而且緊跟時代,更新的很快,我看過的是第二版,就已經加進去了social network analysis這種當時的前沿內容。現在已經有第三版了,我還沒看過,但應該也加入了不少新內容。其實這本書並不難讀,只是篇幅較長,啃起來比較耗時。
其實這兩本書里單拎出來一塊內容可能又是幾本書的節奏,比如bayesian方法,再拿出兩三本書來講也不為過,我個人用到的比較多,而且也確實有不少好書。但並非是所有data scientist都要用到,所以這一塊就不再細說。
還有一些印象比較深刻的書:
Big DataGlossary: 主要講解大數據處理技術及工具,內容涵蓋了NoSQL,MapRece,Storage,Servers,NLP庫與工具包,機器學習工具包,數據可視化工具包,數據清洗,序列化指南等等。總之,是一本辭典式的大數據入門指導。
Mining ofMassive Datasets:這本書是斯坦福大學Web Mining的講義,裡面很多內容與韓家煒的Data Mining那本書重合,但這本書里詳細地講了MapRece的設計原理,PageRank(Google創業時期的核心排序演算法,現在也在不斷優化更新)講解得也比較詳細。
DevelopingAnalytic Talent: 作者是個從事了十幾年數據工作的geek,技術博客寫得很有個人風格,寫的內容都比較偏門,通常只有具備相關數據處理經驗的人能體會出來,絲毫不照顧初學者的感受。比如他會談到當數據流更新太快時該怎麼辦,或者MapRece在什麼時候不好用的問題,才不管你懂不懂相關基礎原理。所以這本書不太適合初學者閱讀。這本書其實是作者的博客文章的集結,用how to become a data scientist的邏輯把他近幾年的博客文章串聯了起來。
Past, Present and Future of Statistical Science:這本書是由COPSS(統計學社主席委員會,由國際各大統計學會的帶頭人組成)在50周年出版的一本紀念冊,裡面有50位統計學家每人分別貢獻出的一兩篇文章,有的回憶了自己當年如何走上統計學這條路,有的探討了一些統計學的根本問題,有的談了談自己在從事的前沿研究,有的則給年輕一代寫下了寄語。非常有愛的一本書。
其它資料
Harvard Data Science:這是H大的Data science在線課,我沒有修過,但口碑很好。這門課需要費用8千刀左右,比起華盛頓大學的4千刀的Data science在線課雖貴一倍,但比斯坦福的14千刀要便宜將近一半(而且斯坦福的更偏計算機)。如果想自學,早有好心人分享了slides:(https://drive.google.com/folderview?id=0BxYkKyLxfsNVd0xicUVDS1dIS0k&usp=sharing)和homeworks and solutions: (https://github.com/cs109/content)
PyData:PyData是來自各個domain的用Python做數據的人每年舉行一次的聚會,期間會有各路牛人舉行一些規模不大的seminar或workshop,有好心人已經把video上傳到github,有興趣的去認領吧(DataTau/datascience-anthology-pydata · GitHub)
工具
R/Python/MATLAB(必備):如果是做數據分析和模型開發,以我的觀察來看,使用這三種工具的最多。R生來就是一個統計學家開發的軟體,所做的事也自然圍繞統計學展開。MATLAB雖然算不上是個專業的數據分析工具,但因為很多人不是專業做數據的,做數據還是為了自己的domain expertise(特別是科學計算、信號處理等),而MATLAB又是個強大無比的Domain expertise工具,所以很多人也就順帶讓MATLAB也承擔了數據處理的工作,雖然它有時候顯得效率不高。Python雖然不是做數據分析的專業軟體,但作為一個面向對象的高級動態語言,其開源的生態使Python擁有無比豐富的庫,Numpy, Scipy 實現了矩陣運算/科學計算,相當於實現了MATLAB的功能,Pandas又使Python能夠像R一樣處理dataframe,scikit-learn又實現了機器學習。
SQL(必備):雖然現在人們都說傳統的關系型資料庫如Oracle、MySQL越來越無法適應大數據的發展,但對於很多人來說,他們每天都有處理數據的需要,但可能一輩子都沒機會接觸TB級的數據。不管怎麼說,不論是用關系型還是非關系型資料庫,SQL語言是必須要掌握的技能,用什麼資料庫視具體情況而定。
MongoDB(可選):目前最受歡迎的非關系型資料庫NoSQL之一,不少人認為MongoDB完全可以取代mySQL。確實MongoDB方便易用,擴展性強,Web2.0時代的必需品。
Hadoop/Spark/Storm(可選): MapRece是當前最著名也是運用最廣泛的分布式計算框架,由Google建立。Hadoop/Spark/storm都是基於MapRece的框架建立起來的分布式計算系統,要說他們之間的區別就是,Hadoop用硬碟存儲數據,Spark用內存存儲數據,Storm只接受實時數據流而不存儲數據。一言以蔽之,如果數據是離線的,如果數據比較復雜且對處理速度要求一般,就Hadoop,如果要速度,就Spark,如果數據是在線的實時的流數據,就Storm。
OpenRefine(可選):Google開發的一個易於操作的數據清洗工具,可以實現一些基本的清洗功能。
Tableau(可選):一個可交互的數據可視化工具,操作簡單,開箱即用。而且圖表都設計得非常漂亮。專業版1999美刀,終身使用。媒體和公關方面用得比較多。
Gephi(可選):跟Tableau類似,都是那種可交互的可視化工具,不需要編程基礎,生成的圖表在美學和設計上也是花了心血的。更擅長復雜網路的可視化。
來自知乎
以上是小編為大家分享的關於怎樣進行大數據的入門級學習?的相關內容,更多信息可以關注環球青藤分享更多干貨
Ⅱ 如何高效地使用RStudio
RStudio Server 是 RStudio 公司打造的一款基於 Web 的開源編輯器,如果你熟悉 RStudio的桌面版本,那麼使用RStudio Server對你來說基本上沒什麼難度。
在
實際的工程中,我們的伺服器大多是基於Linux的,比如常見的 ubuntu、centos
等。這些操作系統有時並不提供圖形化界面,這時候RStudio的伺服器版本就派上用場了。啟動RStudio
Server後,進入在瀏覽器中進入某一個頁面後就可以像桌面版一樣使用RStudio編輯器。當R的代碼在伺服器上出現bug了,線上的hotfix是
在所難免的,這時候必然會用到 RStudio Server 應個急。
這一次,我們將繼續利用Docker神器,快速初始化RStudio Server環境的配置,並結合Git實現代碼的版本控制。
准備
一個 Ubuntu 伺服器
第一步:安裝 RStudio Server
首先,我們通過docker 安裝一個標準的RStudio Server
docker pull quantumobject/docker-rstudio
docker run -d -p 8787:8787 quantumobject/docker-rstudio
這樣在你的電腦的8787埠就可以訪問到rstudio的登陸界面了。
第二步:初始化 RStudio 賬號
接著,我們需要初始化一個rstudio的賬號
docker exec -it container-id /bin/bash
adser harryzhu # 設置新用戶名
passwd harryzhu # 設置該用戶的密碼
mkdir /home/harryzhu # 初始化工作空間
chmod -R harryzhu /home/harryzhu # 給工作空間賦權
第三步:安裝 git
然後,我們進入rstudio的伺服器,我們打算引入git版本控制
sudo apt-get install git-core
第四步:解決 ssh 的認證問題
使用 git 的過程可能遇到SSL certificate problem。對於ssh的問題,我們可以選擇建立一個ssh認證的key,也可以在git中設置為忽略。
生成一個key:
$ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
連續按下回車,跳過密碼設置
顯示秘鑰信息:
sudo cat /root/.ssh/id_rsa.pub
如果沒有ssh認證的需求,也可以選擇忽略:
git config --global http.sslVerify false
第五步:在 RStudio Server 中配置Git
在最上方的菜單欄中可以選擇Project Options。
接著填寫配置。
第六步:克隆 Git 項目到本地
Git 功能已經集成在 RStudio-Server 中了,在新建項目時可以選擇新建一個Version Control 的 Git 項目。
大功告成!
參考資料
docker-rstudio 手冊
張丹老師的 RStudio-Server 配置實戰
Rstudio 官方 git 解決方案
劉坤老師的 Git 中文教程
---------------------------------------------------------------------------------------------------------------
概述
本文根據 Rstudio Webinars 的教程資源對Rstudio流的R語言教程做一個匯總,可以看到Rstudio對統計報告的Web化和工程化做了大量貢獻。感謝Rstudio的眾多工程師在開源的道路上的貢獻!
謝溢輝:LaTex/Word的統計報告大逃亡之Rmarkdown生態
教學視頻地址
在可交互、可復用的統計報告中,謝溢輝將介紹一眾R包,包括 knitr、rmarkdown、htmlwidgets、DT、leaflet以及shiny。
快速標準的論文書寫# $something$ 或者 $$something$$ 可以解決數學公式的問題
# 利用 bib 文件和[@something] 可以解決引用的問題
# 同樣的,你也可以根據一些機構要求引入標準的模板。
參考謝溢輝的Rmarkdown論文
參考謝溢輝的bib文件
屏蔽源碼# ```{r echo=F}屏蔽源代碼
# ```{r, fig.width=5, fig.height=4} 設置配圖大小
# 腳注
代碼段內存共享
利用cache選項復用代碼和數據
Sys.sleep(5)
rnorm(1)
輸出其他語言代碼
利用engine選項選擇代碼引擎,驅動python、R、scala、Rcpp、bash、perl、node等
x = 'hello, python
world!'
print(x)
print(x.split(' '))
互動式文檔
利用yaml配置中的runtime選項
---
author: Harry Zhu
output: html_document
runtime: shiny
---
同理,你也可以選擇輸出slide、pdf或者word,你甚至可以給html定製一個css皮膚。
在我看來,rmarkdown是一款超越Zeppelin和iPython notebook的產品。
最總要的意義在於,學術工作者和工程師們不僅僅可以擺脫格式對創作的束縛專注於代碼和文檔,更是隨意輸出pdf、slide、html、word、latex等多種格式,形成強有力的跨界沖擊。
謝溢輝本人有超過10年以上的LaTex使用經驗,他的rmarkdown和knitr造福了一代學術工作者,顯然LaTex和Word的體系在這種降維攻擊下已經搖搖欲墜。
Hadley Wickham:R與大數據共舞
教學視頻地址
R是一門為小數據探索和開發設計的語言,但在生產中R和大數據在一起還能發揮作用嗎? 我們定義數據量大於單機內存的數據為大數據。讓我們對比一下大數據與小數據的生命周期。
一個小數據分析項目的生命周期:
闡明:熟悉數據、模板解決方案
開發:創建有效模型
產品化:自動化與集成
發布:社會化
一個大數據分析項目的生命周期:
切片:抽取部分數據
闡明:熟悉數據、模板解決方案
開發:創建有效模型
擴展:使用到整個數據集
產品化:自動化與集成
發布:社會化
dplyr與數據讀取
教學視頻地址
PackageDBMSsrc_sqlite()SQLitesrc_mysqlMySQLsrc_postgresPostgreSQLlibrary(bigquery) src_bigquery()Google BigQuery
顯示SQLshow_query(clean)
中間緩存
collapse()返回正在處理的結果
# 抽取 1% 的訓練數據
random <- clean %>%
mutate(x = random()) %>%
collapse() %>%
filter(x <= 0.01) %>%
select(-x) %>%
collect()
數據存儲
_to() 根據本地的data frame 在資料庫創建一個表
# air為connection名稱,query5為data frame,"gains"為表名
_to(air, query5, name = "gains")
# 關閉連接
rm(air)
# 垃圾收集器
gc()
Hadley Wickham:ETL
教學視頻地址
本節將討論一個有效的數據分析/數據科學問題框架,包括:
數據讀取 readr/httr/DBI
數據清洗 tidyr/jsonlite
數據處理 dplyr/rlist
數據可視化 ggplot2/ggvis
數據建模 broom
broom:快速分析install.packages("broom")
# 查看相關例子
browseVignettes(package="broom")
Hadley Wickham是RStudio的首席科學家,並兼任統計萊斯大學的兼職教授。他將一一介紹他認為你應該知道的各種R包,並概述大數據和R,但主要是解釋為什麼他相信你不應該擔心大數據的問題。
garrettgman:packrat與虛擬化技術
教學視頻地址
你
是否有過這樣與人合作開發的經歷:在自己機器上運行完美的R代碼,復制到另外一台同事的機器上運行就有很多R包需要重新安裝,有的R包甚至依賴於不同的版
本?現在,在不使用Docker或Vagrant等全局虛擬化技術的條件下,只需要運用packrat包,就可以保證你的R項目的依賴問題被很好的解決,
一次運行,到處運行。
if(!require(packrat)){install.packages("packrat")}
getOption("repos") # 顯示代碼鏡像源
packrat:: bundle() # 打包當前環境並虛擬化
packrat:: unbundle(bundle="xxx.tar.gz",where=".") # 載入已經打包過的環境
packrat::opts$local.repos("~/R") # 設置本地repos為路徑
packrat::install_local("pryr") # 從本地安裝
Hadley Wickham:Git與團隊協作
教學視頻地址
團隊協作:利用Git 和 GitHub,你可以很輕松的與人協作,你不再需要用郵件附件來備份文檔,或者在Dropbox上為爭奪編輯許可權而爭吵。相反,你可以獨立工作,最後只需要合並你們的成果就可以。
版本控制: Git 在我們製造重大錯誤時都允許我們回滾到之前的任意時間點。我們也可以回顧我們之前所做的一起歷史記錄,跟蹤bug的形成過程。
Ⅲ 如何入門大數據
大數據
數據科學並沒有一個獨立的學科體系,統計學,機器學習,數據挖掘,資料庫,分布式計算,雲計算,信息可視化等技術或方法來對付數據。
但從狹義上來看,我認為數據科學就是解決三個問題:
1. data pre-processing;(數據預處理)
2. data interpretation;(數據解讀)
3.data modeling and analysis.(數據建模與分析)
這也就是我們做數據工作的三個大步驟:
1、原始數據要經過一連串收集、提取、清洗、整理等等的預處理過程,才能形成高質量的數據;
2、我們想看看數據「長什麼樣」,有什麼特點和規律;
3、按照自己的需要,比如要對數據貼標簽分類,或者預測,或者想要從大量復雜的數據中提取有價值的且不易發現的信息,都要對數據建模,得到output。
這三個步驟未必嚴謹,每個大步驟下面可能依問題的不同也會有不同的小步驟,但按我這幾年的經驗來看,按照這個大思路走,數據一般不會做跑偏。
這樣看來,數據科學其實就是門復合型的技術,既然是技術就從編程語言談起吧,為了簡練,只說說R和Python。但既然是薦數據科學方面的書,我這里就不提R/Python編程基礎之類的書了,直接上跟數據科學相關的。
R programming
如果只是想初步了解一下R語言已經R在數據分析方面的應用,那不妨就看看這兩本:
R in action:我的R語言大數據101。其實對於一個沒有任何編程基礎的人來說,一開始就學這本書,學習曲線可能會比較陡峭。但如果配合上一些輔助材料,如官方發布的R basics(http://cran.r-project.org/doc/contrib/usingR.pdf),stackoverflow上有tag-R的問題集(Newest 『r』 Questions),遇到復雜的問題可在上面搜索,總會找到解決方案的。這樣一來,用這本書拿來入門學習也問題不大。而且這本書作者寫得也比較輕松,緊貼實戰。
Data analysis and graphics using R:使用R語言做數據分析的入門書。這本書的特點也是緊貼實戰,沒有過多地講解統計學理論,所以喜歡通過情境應用來學習的人應該會喜歡這本入門書。而且這本書可讀性比較強,也就是說哪怕你手頭沒電腦寫不了代碼,有事沒事拿出這本書翻一翻,也能讀得進去。
但如果你先用R來從事實實在在的數據工作,那麼上面兩本恐怕不夠,還需要這些:
Modern applied statistics with S:這本書里統計學的理論就講得比較多了,好處就是你可以用一本書既復習了統計學,又學了R語言。(S/Splus和R的關系就類似於Unix和Linux,所以用S教程學習R,一點問題都沒有)
Data manipulation with R:這本書實務性很強,它教給你怎麼從不同格式的原始數據文件里讀取、清洗、轉換、整合成高質量的數據。當然和任何一本注重實戰的書一樣,本書也有豐富的真實數據或模擬數據供你練習。對於真正從事數據處理工作的人來說,這本書的內容非常重要,因為對於任何研究,一項熟練的數據預處理技能可以幫你節省大量的時間和精力。否則,你的研究總是要等待你的數據。
R Graphics Cookbook:想用R做可視化,就用這本書吧。150多個recipes,足以幫你應付絕大多數類型的數據。以我現在極業余的可視化操作水平來看,R是最容易做出最漂亮的圖表的工具了。
An introction to statistical learning with application in R:這本書算是著名的the element of statistical learning的姊妹篇,後者更注重統計(機器)學習的模型和演算法,而前者所涉及的模型和演算法原沒有後者全面或深入,但卻是用R來學習和應用機器學習的很好的入口。
A handbook of statistical analysis using R:這本書內容同樣非常扎實,很多統計學的學生就是用這本書來學慣用R來進行統計建模的。
Python
Think Python,Think Stats,Think Bayes:這是Allen B. Downey寫的著名的Think X series三大卷。其實是三本精緻的小冊子,如果想快速地掌握Python在統計方面的操作,好好閱讀這三本書,認真做習題,答案鏈接在書里有。這三本書學通了,就可以上手用Python進行基本的統計建模了。
Python For Data Analysis: 作者是pandas的主要開發者,也正是Pandas使Python能夠像R一樣擁有dataframe的功能,能夠處理結構比較復雜的數據。這本書其實analysis講得不多,說成數據處理應該更合適。掌握了這本書,處理各種糟心的數據就問題不大了。
Introction to Python for Econometrics, Statistics and Data Analysis:這本書第一章就告訴你要安裝Numpy, Scipy, Matplotlib, Pandas, IPython等等。然後接下來的十好幾章就是逐一介紹這幾個庫該怎麼用。很全面,但讀起來比較枯燥,可以用來當工具書。
Practical Data Analysis: 這本書挺奇葩,貌似很暢銷,但作者把內容安排得東一榔頭西一棒子,什麼都講一點,但一個都沒講透。這本書可以作為我們學習數據分析的一個索引,看到哪塊內容有意思,就順著它這個藤去摸更多的瓜。
Python Data Visualization Cookbook: 用Python做可視化的教材肯定不少,我看過的也就這一本,覺得還不錯。其實這類書差別都不會很大,咬住一本啃下來就是王道。
Exploratory Data Analysis 和 Data Visualization
Exploratory Data Analysis:John Tukey寫於1977年的經典老教材,是這一領域的開山之作。如今EDA已經是統計學里的重要一支,但當時還是有很多人對他的工作不屑一顧。可他愛數據,堅信數據可以以一種出人意料的方式呈現出來。正是他的努力,讓數據可視化成為一門無比迷人的技術。但這本書不推薦閱讀了,內容略過時。要想完整地了解EDA,推薦下一本:
Exploratory Data Analysis with MATLAB:這本書雖然標題帶了個MATLAB,但實際上內容幾乎沒怎麼講MATLAB,只是每講一個方法的時候就列出對應的MATALB函數。這本書的重要之處在於,這是我讀過的講EDA最系統的一本書,除了對visualization有不輸於John Tucky的講解外,對於高維的數據集,通過怎樣的方法才能讓我們從中找到潛在的pattern,這本書也做了詳盡的講解。全書所以案例都有對應的MATALB代碼,而且還提供了GUI(圖形用戶界面)。所以這本書學起來還是相當輕松愉悅的。
Visualize This:中譯本叫「鮮活的數據」,作者是個「超級數據迷」,建立了一個叫http://flowingdata.com的網頁展示他的數據可視化作品,這本書告訴你該選擇什麼樣的可視化工具,然後告訴你怎樣visualize關系型數據、時間序列、空間數據等,最後你就可以用數據講故事了。如果你只想感受一下數據可視化是個什麼,可以直接點開下面這個鏈接感受下吧!A tour through the visualization zoo(A Tour Through the Visualization Zoo)
Machine Learning & Data Mining
這一塊就不多說了,不是因為它不重要,而是因為它太太太重要。所以這一部分就推兩本書,都是」世界名著「,都比較難讀,需要一點點地啃。這兩本書拿下,基本就算是登堂入室了。其實作為機器學習的延伸和深化,概率圖模型(PGM)和深度學習(deep learning)同樣值得研究,特別是後者現在簡直火得不得了。但PGM偏難,啃K.Daphne那本大作實在太燒腦,也沒必要,而且在數據領域的應用也不算很廣。deep learning目前工業界的步子邁得比學術界的大,各個domain的應用如火如荼,但要有公認的好教材問世則還需時日,所以PGM和deep learning這兩塊就不薦書了。
The Element of Statistical Learning:要學機器學習,如果讓我只推薦一本書,我就推薦這本巨著。Hastie、Tibshirani、Friedman這三位大牛寫書寫得太用心了,大廈建得夠高夠大,結構也非常嚴謹,而且很有前瞻性,納入了很多前沿的內容,而不僅僅是一部綜述性的教材。(圖表也做得非常漂亮,應該是用R語言的ggplot2做的。)這本書注重講解模型和演算法本身,所以需要具備比較扎實的數理基礎,啃起這本書來才不會太吃力。事實上掌握模型和演算法的原理非常重要。機器學習(統計學習)的庫現在已經非常豐富,即使你沒有完全搞懂某個模型或演算法的原理和過程,只要會用那幾個庫,機器學習也能做得下去。但你會發現你把數據代進去,效果永遠都不好。但是,當你透徹地理解了模型和演算法本身,你再調用那幾個庫的時候,心情是完全不一樣的,效果也不一樣。
Data Mining: Concepts and Techniques, by Jiawei Han and Micheline Kamber 數據挖掘的教材汗牛充棟,之所以推薦這本韓家煒爺爺的,是因為雖然他這本書的出發點是應用,但原理上的內容也一點沒有落下,內容非常完整。而且緊跟時代,更新的很快,我看過的是第二版,就已經加進去了social network analysis這種當時的前沿內容。現在已經有第三版了,我還沒看過,但應該也加入了不少新內容。其實這本書並不難讀,只是篇幅較長,啃起來比較耗時。
其實這兩本書里單拎出來一塊內容可能又是幾本書的節奏,比如bayesian方法,再拿出兩三本書來講也不為過,我個人用到的比較多,而且也確實有不少好書。但並非是所有data scientist都要用到,所以這一塊就不再細說。
還有一些印象比較深刻的書:
Big Data Glossary: 主要講解大數據處理技術及工具,內容涵蓋了NoSQL,MapRece,Storage,Servers,NLP庫與工具包,機器學習工具包,數據可視化工具包,數據清洗,序列化指南等等。總之,是一本辭典式的大數據入門指導。
Mining of Massive Datasets:這本書是斯坦福大學Web Mining的講義,裡面很多內容與韓家煒的Data Mining那本書重合,但這本書里詳細地講了MapRece的設計原理,PageRank(Google創業時期的核心排序演算法,現在也在不斷優化更新)講解得也比較詳細。
Developing Analytic Talent: 作者是個從事了十幾年數據工作的geek,技術博客寫得很有個人風格,寫的內容都比較偏門,通常只有具備相關數據處理經驗的人能體會出來,絲毫不照顧初學者的感受。比如他會談到當數據流更新太快時該怎麼辦,或者MapRece在什麼時候不好用的問題,才不管你懂不懂相關基礎原理。所以這本書不太適合初學者閱讀。這本書其實是作者的博客文章的集結,用how to become a data scientist的邏輯把他近幾年的博客文章串聯了起來。
Past, Present and Future of Statistical Science:這本書是由COPSS(統計學社主席委員會,由國際各大統計學會的帶頭人組成)在50周年出版的一本紀念冊,裡面有50位統計學家每人分別貢獻出的一兩篇文章,有的回憶了自己當年如何走上統計學這條路,有的探討了一些統計學的根本問題,有的談了談自己在從事的前沿研究,有的則給年輕一代寫下了寄語。非常有愛的一本書。
其它資料
Harvard Data Science:這是H大的Data science在線課,我沒有修過,但口碑很好。這門課需要費用8千刀左右,比起華盛頓大學的4千刀的Data science在線課雖貴一倍,但比斯坦福的14千刀要便宜將近一半(而且斯坦福的更偏計算機)。如果想自學,早有好心人分享了slides: (https://drive.google.com/folderview?id=0BxYkKyLxfsNVd0xicUVDS1dIS0k&usp=sharing)和homeworks and solutions: (https://github.com/cs109/content)
PyData:PyData是來自各個domain的用Python做數據的人每年舉行一次的聚會,期間會有各路牛人舉行一些規模不大的seminar或workshop,有好心人已經把video上傳到github,有興趣的去認領吧(DataTau/datascience-anthology-pydata · GitHub)
工具
R/Python/MATLAB(必備):如果是做數據分析和模型開發,以我的觀察來看,使用這三種工具的最多。R生來就是一個統計學家開發的軟體,所做的事也自然圍繞統計學展開。MATLAB雖然算不上是個專業的數據分析工具,但因為很多人不是專業做數據的,做數據還是為了自己的domain expertise(特別是科學計算、信號處理等),而MATLAB又是個強大無比的Domain expertise工具,所以很多人也就順帶讓MATLAB也承擔了數據處理的工作,雖然它有時候顯得效率不高。Python雖然不是做數據分析的專業軟體,但作為一個面向對象的高級動態語言,其開源的生態使Python擁有無比豐富的庫,Numpy, Scipy 實現了矩陣運算/科學計算,相當於實現了MATLAB的功能,Pandas又使Python能夠像R一樣處理dataframe,scikit-learn又實現了機器學習。
SQL(必備):雖然現在人們都說傳統的關系型資料庫如Oracle、MySQL越來越無法適應大數據的發展,但對於很多人來說,他們每天都有處理數據的需要,但可能一輩子都沒機會接觸TB級的數據。不管怎麼說,不論是用關系型還是非關系型資料庫,SQL語言是必須要掌握的技能,用什麼資料庫視具體情況而定。
MongoDB(可選):目前最受歡迎的非關系型資料庫NoSQL之一,不少人認為MongoDB完全可以取代mySQL。確實MongoDB方便易用,擴展性強,Web2.0時代的必需品。
Hadoop/Spark/Storm(可選): MapRece是當前最著名也是運用最廣泛的分布式計算框架,由Google建立。Hadoop/Spark/storm都是基於MapRece的框架建立起來的分布式計算系統,要說他們之間的區別就是,Hadoop用硬碟存儲數據,Spark用內存存儲數據,Storm只接受實時數據流而不存儲數據。一言以蔽之,如果數據是離線的,如果數據比較復雜且對處理速度要求一般,就Hadoop,如果要速度,就Spark,如果數據是在線的實時的流數據,就Storm。
OpenRefine(可選):Google開發的一個易於操作的數據清洗工具,可以實現一些基本的清洗功能。
Tableau(可選):一個可交互的數據可視化工具,操作簡單,開箱即用。而且圖表都設計得非常漂亮。專業版1999美刀,終身使用。媒體和公關方面用得比較多。
Gephi(可選):跟Tableau類似,都是那種可交互的可視化工具,不需要編程基礎,生成的圖表在美學和設計上也是花了心血的。更擅長復雜網路的可視化。
Ⅳ 如何系統地自學 Python
是否非常想學好 Python,一方面被瑣事糾纏,一直沒能動手,另一方面,擔心學習成本太高,心裡默默敲著退堂鼓?
幸運的是,Python 是一門初學者友好的編程語言,想要完全掌握它,你不必花上太多的時間和精力。
Python 的設計哲學之一就是簡單易學,體現在兩個方面:
語法簡潔明了:相對 Ruby 和 Perl,它的語法特性不多不少,大多數都很簡單直接,不玩兒玄學。
切入點很多:Python 可以讓你可以做很多事情,科學計算和數據分析、爬蟲、Web 網站、游戲、命令行實用工具等等等等,總有一個是你感興趣並且願意投入時間的。
廢話不多說,學會一門語言的捷徑只有一個: Getting Started
¶ 起步階段
任何一種編程語言都包含兩個部分:硬知識和軟知識,起步階段的主要任務是掌握硬知識。
°1 硬知識
「硬
知識」指的是編程語言的語法、演算法和數據結構、編程範式等,例如:變數和類型、循環語句、分支、函數、類。這部分知識也是具有普適性的,看上去是掌握了一
種語法,實際是建立了一種思維。例如:讓一個 Java 程序員去學習 Python,他可以很快的將 Java 中的學到的面向對象的知識 map 到
Python 中來,因此能夠快速掌握 Python 中面向對象的特性。
如果你是剛開始學習編程的新手,一本可靠的語法書是非常重要的。它看上去可能非常枯燥乏味,但對於建立穩固的編程思維是必不可少。
下面列出了一些適合初學者入門的教學材料:
❖「笨方法學 Python」:http://learnpythonthehardway.org/book/
這本書在講解 Python 的語法成分時,還附帶大量可實踐的例子,非常適合快速起步。
❖「廖雪峰的 Python 2.7 教程」:Home - 廖雪峰的官方網站
Python 中文教程的翹楚,專為剛剛步入程序世界的小白打造。
❖「The Hitchhiker』s Guide to Python!」:The Hitchhiker』s Guide to Python!
這本指南著重於 Python 的最佳實踐,不管你是 Python 專家還是新手,都能獲得極大的幫助。
❖「Python 官方文檔」:Our Documentation
實踐中大部分問題,都可以在官方文檔中找到答案。
❖ 輔助工具:Python Tutor
一個 Python 對象可視化的項目,用圖形輔助你理解 Python 中的各種概念。
Python 的哲學:
用一種方法,最好是只有一種方法來做一件事。
學習也是一樣,雖然推薦了多種學習資料,但實際學習的時候,最好只選擇其中的一個,堅持看完。
必要的時候,可能需要閱讀講解數據結構和演算法的書,這些知識對於理解和使用 Python 中的對象模型有著很大的幫助。
°2 軟知識
「軟知識」則是特定語言環境下的語法技巧、類庫的使用、IDE的選擇等等。這一部分,即使完全不了解不會使用,也不會妨礙你去編程,只不過寫出的程序,看上去顯得「傻」了些。
對
這些知識的學習,取決於你嘗試解決的問題的領域和深度。對初學者而言,起步階段極易走火,或者在選擇 Python 版本時徘徊不決,一會兒看 2.7
一會兒又轉到 3.0,或者徜徉在類庫的大海中無法自拔,Scrapy,Numpy,Django
什麼都要試試,或者參與編輯器聖戰、大括弧縮進探究、操作系統辯論賽等無意義活動,或者整天跪舔語法糖,老想著怎麼一行代碼把所有的事情做完,或者去構想
聖潔的性能安全通用性健壯性全部滿分的解決方案。
很多「大牛」都會告誡初學者,用這個用那個,少走彎路,這樣反而把初學者推向了真正的彎路。
還不如告訴初學者,學習本來就是個需要你去走彎路出 Bug,只能腳踏實地,沒有奇跡只有狗屎的過程。
選擇一個方向先走下去,哪怕臟丑差,走不動了再看看有沒有更好的解決途徑。
自己走了彎路,你才知道這么做的好處,才能理解為什麼人們可以手寫狀態機去匹配卻偏要發明正則表達式,為什麼面向過程可以解決卻偏要面向對象,為什麼我可以操縱每一根指針卻偏要自動管理內存,為什麼我可以嵌套回調卻偏要用 Promise...
更重要的時,你會明白,高層次的解決方法都是對低層次的封裝,並不是任何情況下都是最有效最合適的。
技術涌進就像波浪一樣,那些陳舊的封存已久的技術,消退了遲早還會涌回的。就像現在移動端應用、手游和 HTML5 的火熱,某些方面不正在重演過去 PC 的那些歷史么?
因此,不要擔心自己走錯路誤了終身,堅持並保持進步才是正道。
起步階段的核心任務是掌握硬知識,軟知識做適當了解,有了穩固的根,粗壯的枝幹,才能長出濃密的葉子,結出甜美的果實。
¶ 發展階段
完成了基礎知識的學習,必定會感到一陣空虛,懷疑這些語法知識是不是真的有用。
沒錯,你的懷疑是非常正確的。要讓 Python 發揮出它的價值,當然不能停留在語法層面。
發展階段的核心任務,就是「跳出 Python,擁抱世界」。
在你面前會有多個分支:科學計算和數據分析、爬蟲、Web 網站、游戲、命令行實用工具等等等等,這些都不是僅僅知道 Python 語法就能解決的問題。
拿
爬蟲舉例,如果你對計算機網路,HTTP協議,HTML,文本編碼,JSON一無所知,你能做好這部分的工作么?而你在起步階段的基礎知識也同樣重要,如
果你連循環遞歸怎麼寫都還要查文檔,連 BFS 都不知道怎麼實現,這就像工匠做石凳每次起錘都要思考錘子怎麼使用一樣,非常低效。
在這個階段,不可避免要接觸大量類庫,閱讀大量書籍的。
°1 類庫方面
「Awesome Python 項目」:vinta/awesome-python · GitHub
這里列出了你在嘗試解決各種實際問題時,Python 社區已有的工具型類庫,如下圖所示:
你可以按照實際需求,尋找你需要的類庫。
至於相關類庫如何使用,必須掌握的技能便是閱讀文檔。由於開源社區大多數文檔都是英文寫成的,所以,英語不好的同學,需要惡補下。
°2 書籍方面:
這里我只列出一些我覺得比較有一些幫助的書籍,詳細的請看豆瓣的書評:
科學和數據分析:
❖「集體智慧編程」:集體智慧編程 (豆瓣)
❖「數學之美」:數學之美 (豆瓣)
❖「統計學習方法」:統計學習方法 (豆瓣)
❖「Pattern Recognition And Machine Learning」:Pattern Recognition And Machine Learning (豆瓣)
❖「數據科學實戰」:數據科學實戰 (豆瓣)
❖「數據檢索導論」:信息檢索導論 (豆瓣)
爬蟲:
❖「HTTP 權威指南」:HTTP權威指南 (豆瓣)
Web 網站:
❖「HTML & CSS 設計與構建網站」:HTML & CSS設計與構建網站 (豆瓣)
...
列到這里已經不需要繼續了。
聰明的你一定會發現上面的大部分書籍,並不是講 Python 的書,而更多的是專業知識。
事實上,這里所謂「跳出 Python,擁抱世界」,其實是發現 Python 和專業知識相結合,能夠解決很多實際問題。這個階段能走到什麼程度,更多的取決於自己的專業知識。
¶ 深入階段
這個階段的你,對 Python 幾乎了如指掌,那麼你一定知道 Python 是用 C 語言實現的。
可是 Python 對象的「動態特徵」是怎麼用相對底層,連自動內存管理都沒有的C語言實現的呢?這時候就不能停留在表面了,勇敢的拆開 Python 的黑盒子,深入到語言的內部,去看它的歷史,讀它的源碼,才能真正理解它的設計思路。
這里推薦一本書:
「Python 源碼剖析」:Python源碼剖析 (豆瓣)
這本書把 Python 源碼中最核心的部分,給出了詳細的闡釋,不過閱讀此書需要對 C 語言內存模型和指針有著很好的理解。
另
外,Python 本身是一門雜糅多種範式的動態語言,也就是說,相對於 C 的過程式、 Haskell 等的函數式、Java
基於類的面向對象而言,它都不夠純粹。換而言之,編程語言的「道學」,在 Python
中只能有限的體悟。學習某種編程範式時,從那些面向這種範式更加純粹的語言出發,才能有更深刻的理解,也能了解到 Python 語言的根源。
這里推薦一門公開課
「編程範式」:斯坦福大學公開課:編程範式
講師高屋建瓴,從各種編程範式的代表語言出發,給出了每種編程範式最核心的思想。
值得一提的是,這門課程對C語言有非常深入的講解,例如C語言的范型和內存管理。這些知識,對閱讀 Python 源碼也有大有幫助。
Python 的許多最佳實踐都隱藏在那些眾所周知的框架和類庫中,例如 Django、Tornado 等等。在它們的源代碼中淘金,也是個不錯的選擇。
¶ 最後的話
每個人學編程的道路都是不一樣的,其實大都殊途同歸,沒有迷路的人只有不能堅持的人。雖然聽上去有點雞湯,但是這是事實。
希望想學 Python 想學編程的同學,不要猶豫了,看完這篇文章,Just getting started~
Ⅳ 怎麼寫科技小論文或實踐報告(以自然科學范疇的論文為主)
格式如下
1.題目
2.內容摘要
3.關鍵詞
4.作者名字,地址,郵政編碼
5.正文
6.參考文獻
7.其他
青少年科技活動充滿趣味性、探索性、好奇性和創造性,積極開展科技活動是貫徹實施以培養創新意識為核心的素質教育的一個重要渠道。科技小論文是科技活動的總結,是在科技實踐活動的基礎上進行分析歸納、演繹推理、類比想像、抽象概括,從而得出具有普遍推廣意義的新規律、新理論、新假設等結論。指導學生寫作科技小論文,是引導學生進行科學探索,了解和學習科學研究的一般方法,提高學生科技素質和培養創造型人才的有效途徑。我在1997年開始從事科技活動輔導以來,就如何指導學生寫作科技小論文作了一些嘗試和探索,取得了一點成效。在我指導學生完成的10多篇科技小論文中,獲全國二等獎1篇,廣西一等獎1篇,三等獎1篇,地、市級獎勵6篇。現將本人的膚淺認識和體會簡單介紹如下,以向同行請教。
一、提高認識,激發興趣,消除科技小論文的神秘感
首先,堅持在課堂教學中滲透科技教育,培養和提高學生的科技素質。備課時,選擇教學內容要突出科技知識,並及時將本學科的最新研究成果充實到教學內容中。改革教育觀念和教學方法,重視科學研究方法的訓練和科技史教育。比如在學習鐵的性質時,介紹α-Fe2O3和γ-Fe2O3在錄音材料上的重要用途,學生往往熱情高漲,感到科學技術離他們並不遙遠,從而增強學生的科技意識。
其次,通過講座、板報、科技知識競賽、科技讀書筆記比賽、科技手抄報比賽等活動,使學生充分認識科學技術的迅猛發展及其對世界各國綜合國力的巨大影響。例如,在1997年第一屆全國中師化學科普知識競賽中,我輔導的學生獲全國二等獎1人,全國三等將2人,廣西一等獎3人,二等獎5人,三等獎12人,我本人獲全國中師化學科普知識競賽優秀輔導員稱號;在2000年7月廣西首屆中師科技藝術節的各項比賽中,我輔導的學生均獲得優異成績;在2000年12月第二屆全國中師化學科普知識競賽中,我輔導的學生獲全國一等獎1人,二等獎2人,三等獎8人,廣西一等獎13人,二等獎38人,我本人獲全國優秀輔導員稱號。這些成績的取得,極大地激發了學生對科技活動的興趣和熱情。
第三,向學生介紹一些他們熟悉的短小精悍的優秀科技小論文,揭開科技小論文的神秘面紗。例如,聯系生活實際介紹獲全國一等獎的科技小論文《水浮蓮凈化污水的觀察與調查》、《銀杏快速培育的實驗》、《音樂對某些植物生長發育影響的實驗》等,聯系教學內容向學生介紹變廢為寶利用柑子皮水解後進行銀鏡反應的科技小論文《柑子皮的妙用》以及《薊草可解煙毒》、《禾苗枯萎之迷》等科技小論文。這些通俗易懂的例子說明科技小論文的寫作並不是高深莫測、可望而不可及的事情,同時也為學生寫作科技小論文提供了良好的範例。
二、聯系實際,選好科技小論文的寫作題材
第一、引導學生選擇自己熟悉的感興趣的題材。我們是指導學生寫作科技小論文,所以要放手讓學生自己選題,這樣才能選出學生感興趣的、能獨立完成的好題材。我校學生大部分來自農村,學校培養的目標是小學教師。因此,我指導學生選題的要求和原則是:面向小學,立足農村,服務農村,選擇身邊熟悉的感興趣的題材。比如,我指導的獲獎科技小論文《流動灌溉——馬蹄優質高產試驗》、《龍眼罩網防果蝠實驗》、《油茶樹抵禦磚廠污染的調查》等題材都是學生從自己熟悉的生產生活中選擇的,其實踐結果對促進農村經濟發展起到一定的積極作用。比如《流動灌溉——馬蹄優質高產試驗》的結果可使農民種植馬蹄每畝增收500多元,在學生家鄉已得到廣泛推廣,並於2000年8月26日被廣西科技報在第一版宣傳推廣。立足農村選擇的題材所需實驗條件簡單易行,適合學生今後在小學教學中開展科技活動。
第二、選擇的題材要具有新穎性。選擇新穎的好題材意味著科技小論文的寫作成功了一半。我首先是在學生中開展各種形式的讀書活動,積累科技知識,引導學生用科學眼光觀察生活,大膽質疑,發現生活中的科學現象和科學問題,從多種角度分析問題產生的原因,篩選提煉論文題材,確定實踐方案。其次,還結合具體例子說明科技小論文選題的方向和規律。例如,《肉桂駁枝繁殖試驗》的「駁枝繁殖」、《人工上籬種植絞股藍試驗》的「人工上籬種植」、《生薑倒種優質高產》的「倒種」、《西瓜嫁接栽培試驗》的「嫁接栽培」、《竹蓀的室內栽培試驗》的「室內栽培」、《磁化水對幾種花卉生長發育影響的實驗》的「磁化水」等等,代表了科技小論文選題的一般方向和規律,都是優秀的選題。
第三、了解不宜選擇的題材。除了青少年科技活動規定不宜選擇的如葯物、葯理、葯效等題材外,我認為需要時間較長的、不具備實驗條件的、不符合青少年學生特點的題材也不宜選擇。
第四、選題宜早不宜遲。這樣才能保證有足夠的時間開展科學實驗,查閱圖書資料以及論文的寫作修改。我指導學生寫作的獲獎科技小論文的題材一般都是學生提前1年甚至2年就選好了的。
三、明確要求,規范格式,培養學生的科研能力
嚴格地說,科技小論文不是「寫」出來的,而是科技實踐活動的結晶。指導學生寫作科技小論文的最終目的是使學生了解科學研究的一般方法,培養學生的科研能力。據了解,許多科技小論文在各級評比中落選的原因,是內容和格式不符合要求,或者是數據材料不足,盡管學生和輔導員都作了大量的實踐工作。因此,指導學生寫作科技小論文之前,必須使學生了解科學研究的一般方法和步驟、科技小論文的選題要求、實驗數據記錄的方法和要求、寫作的格式等等。這樣才能有計劃有目的有步驟地開展科學實踐活動,作好原始記錄,為科技小論文的寫作做好准備。此外,還要使學生明確一篇好的科技小論文,應該有一定數量的圖表和照片等直觀說明材料,才能更好的體現真實性,增強說服力。
四、指導學生查閱資料,分析歸納,提高科技小論文的質量
如何依據諸多個別的實驗考察的現象和數據記錄得出具有普遍推廣意義的結論?這是指導學生寫作科技小論文至關重要的一步。
首先引導學生根據科技小論文的主題對實驗考察的現象和數據學會分辨取捨,去偽存真,歸納出一般結論。其次,指導學生查閱圖書資料和運用學到的科技知識進行演繹推理,從一般結論得出特殊的新觀點、新發現、新方法、新設想等。最後,指導學生運用類比思維將上述的特殊結論進行推廣,從而得出具有普遍推廣意義的新結論、新規律,運用想像思維對原始的朦朧的觀點、設想進行加工、改造,突破時空限制,得出創造性的結論。這樣,既提高了科技小論文的質量,又鍛煉了學生的創造性思維,培養了學生的科研能力
五、刻苦鑽研,認真總結,不斷提高輔導水平
1. 刻苦鑽研,虛心請教,是提高輔導水平的主要方法
我開始從事科技活動輔導的時候,對科技活動了解甚少。由於我校將青少年科技教育定位為學校的辦學特色,濃厚的科技活動氛圍激勵我認真系統地學習有關青少年科技活動的內容、途徑和要求。尤其是我校教務科陳勇副科長和賀州市教育局原科技活動專干高興平老師的熱心指導,使我的輔導水平產生了質的飛躍。1998年我輔導學生寫作的科技小論文《流動灌溉——馬蹄優質高產試驗》獲全國二等獎。這極大地增強了我指導學生開展科技活動的信心,同時也有了更強的責任感。為了進一步提高輔導能力,我先後參加了計算機培訓和研究生主要課程進修,2000年又考取了在職研究生班,現在正在學習中。
2. 指導學生寫作科技小論文需要有熱心、耐心和無私奉獻的精神
就拿我指導學生完成《流動灌溉——馬蹄優質高產試驗》一文來說,雖然學生在我的指導下做了大量的實踐工作,但寫出的初稿過於簡單,尚不足300字。於是,我從實驗方案的設計到實驗數據的記錄,從實驗結果的分析到圖書資料的查閱,一一指導學生改進,其間八易其稿,整個輔導過程傾注了我大量的心血,花費的精力決不亞於自己撰寫一篇在國家級刊物發表的學術論文。有人問我這樣做值得嗎?我笑之以答:「這是一名科技輔導員的職責。只有全身心投入輔導活動中,才有可能輔導出好成績,輔導水平才會不斷提高。」
3. 勤於動筆,善於總結科技活動的經驗教訓
1999年,我在輔導學生科技活動中受到啟發而設計的一個創新實驗,獲全國中師化學老師實驗大賽二等獎。2000年,我將輔導學生科技活動的一點做法和經驗整理成文章參加第八屆中國青少年科技輔導員論文比賽,獲一等獎。這些成績的取得對我輔導學生科技活動具有很大的促進作用,也是學生寫作科技小論文的榜樣和動力。
總之,指導學生寫作科技小論文是一項艱辛而又繁瑣卻富有意義的工作。教師雖然不是科學家,但應該是科學家的引路人 。 然後是實踐報告你可以找幾種小動物養在家裡,觀察它們的習性並做好記錄。過幾天後,寫出你對小動物習性的看法和你對試驗的總結。老sei,選我為滿意答案哦~~~
Ⅵ 調查方法有哪些
1、訪問調查法:訪問者通過口頭交談等方式直接向被訪問者了解社會情況或探討社會問題的調查方法。
2、問卷調查法:運用統一的問卷向被調查者了解情況或征詢意見。是標准化的、書面的、抽樣的。分為自填式問卷和代填式問卷。
3、問卷調查法:范圍大一些的調查,常採用問卷的方式進行。問卷即是書面提問的方式。問卷調查通過收集資料,然後作定量和定性的研究分析,歸納出調查結論。
(6)數據科學實戰pdf擴展閱讀:
主要特點:
調查法是科學探究常用的方法之一,調查時要明確調查目的和調查對象,制定合理的調查方案,如實記錄,對結果進行整理和分析,有時還要用數學方法進行統計。常用的調查方法有普查法和抽樣法等。
調查法的主要特點是,以問題的方式要求被調查者針對問題進行陳述的方法。根據研究的需要,可以向被調查者本人作調查,也可以向熟悉被調查者的人作調查。調查法可以分為書面調查和口頭調查兩種。
調查法能夠同時收集到大量的資料,使用方便,並且效率高。
參考資料:調查法-網路
Ⅶ Python科學計算為目標學習路線應該怎麼走
Python是一種計算機程序設計語言。是一種動版態的、面向對象的腳本語權言,最初被設計用於編寫自動化腳本(shell),隨著版本的不斷更新和語言新功能的添加,越來越多被用於獨立的、大型項目的開發。
我發的是Python的學習路線圖,及Python各階段技能說明,你可以看一下你想走的路線,然後跟著學習路線圖來學習哦!
Ⅷ 有哪些 Python 經典書籍
【Python從入門到精通經典書籍推薦】
Python入門
目的:了解Python,學會用Python編程。
Python入門書眾多,沒必要全部閱讀,根據介紹挑選合適自己的。PS:排名不分先後。
《Python編程入門:從入門到實踐》
【同時使用Python 2.X和3.X講解】
Amazon編程入門類榜首圖書,最值得關注的Python入門書
從基本概念到完整項目開發,幫助零基礎讀者迅速掌握Python編程,開發實際項目
這本書分兩部分:
第一部分介紹用Python編程所必須了解的基本概念,包括matplotlib、NumPy和Pygal等強大的Python庫和工具介紹,以及列表、字典、if語句、類、文件與異常、代碼測試等內容;
第二部分將理論付諸實踐,講解如何開發三個項目,包括簡單的Python 2D游戲開發,如何利用數據生成互動式的信息圖,以及創建和定製簡單的Web應用,並幫讀者解決常見編程問題和困惑。
《Python基礎教程(第2版·修訂版)》
【Python 2.5講解,Python 3上也能運行】
各大網店最暢銷的Python入門書
全書分為三部分。
第一部分講述Python語法,沒有廢話,還摻入了一些Python 3.0要注意的細節。
第二部分介紹了常用的GUI、框架等應用,點到即止,算是為第三部分做鋪墊了,從數目眾多的應用中可以了解到Python的強大。
第三部分是Project,全書最大的亮點,大家肯定喜歡。
作者將前面講述的內容應用到10個引人入勝的項目中,並以模板的形式介紹了項目的開發過程,手把手教授Python開發。
《Python語言及其應用》
【Python 3.X】
語言風格輕松詼諧,講解多種Python工具和第三方庫
實例涉及商業、科研以及藝術領域使用Python開發各種應用
亞馬遜最受歡迎的Python編程書之一,評分4.5
書中首先介紹了Python的基礎知識,然後逐漸深入多種主題,結合教程和攻略式風格來講解Python 3中的概念。每章結尾的練習可以幫助你鞏固所學的知識。
本書會為你學習Python打下堅實的基礎,包括測試、調試、代碼復用的最佳實踐以及其他開發技巧。
《Python編程入門(第3版)》
【Python 3.X 】
從算術運算、字元串、變數,到函數、數據結構、輸入輸出和異常處理,應有盡有
《父與子的編程之旅:與小卡特一起學Python》
【Python 2.X 】
原版Amazon 最受歡迎的青少年編程圖書
最簡單易學的內容組織方式,老少皆宜
第一版獲Jolt大獎
本書中,Warren和Carter父子以親切的筆調、通俗的語言,透徹全面地介紹了計算機編程世界。
他們以簡單易學的Python語言為例,通過可愛的漫畫、有趣的例子,生動地介紹了變數、循環、輸入和輸出、數據結構以及圖形用戶界面等編程的基本概念。
只要懂得計算機的基本操作,如啟動程序、保存文件,任何人都可以跟隨本書,由簡入難,學會編寫程序,甚至製作游戲。
本書內容經過教育專家的評審,經過孩子的親身檢驗,並得到了家長的認可。
《編程導論》
【Python 2.7】
以麻省理工學院開放式課程(OpenCourseWare)中最受歡迎的計算機科學課程為基礎,旨在培養讀者的編程思維,使讀者擁有計算機科學家的視野
本書涵蓋了Python的大部分特性,重點介紹如何使用Python這門語言,共包含編程基礎、Python程序設計語言、理解計算的關鍵概念、計算問題的解決技術等四個方面。
本書將Python語言特性和編程方法貫穿全書,目的是幫助讀者在學習Python的同時掌握如何使用計算來解決有趣的問題。
Python進階
需要一定Python基礎。
《流暢的Python》
【兼顧Python 3和Python 2】
PSF研究員、知名PyCon演講者心血之作
Python核心開發人員擔綱技術審校
全面深入,對Python語言關鍵特性剖析到位
大量詳盡代碼示例,並附有主題相關高質量參考文獻和視頻鏈接
本書致力於幫助Python開發人員挖掘這門語言及相關程序庫的優秀特性,避免重復勞動,同時寫出簡潔、流暢、易讀、易維護,並且具有地道Python風格的代碼。本書尤其深入探討了Python語言的高級用法,涵蓋數據結構、Python風格的對象、並行與並發,以及元編程等不同的方面。
《Python項目開發實戰(第2版)》
【Python 2.7】
網羅Python項目開發中的流程,讓你的編程事半功倍
Python項目與封裝/團隊開發環境/問題驅動開發/源碼管理(Mercurial) Jenkins持續集成(CI)/環境搭建與部署的自動化(Ansible)/Django框架……
這是一本偏工程的圖書,沒怎麼講Python語言基礎知識,直接告訴你怎麼搭建開發環境,做好代碼管理和文檔管理以及缺陷管理等工作。
《Python網路編程攻略》
【Python 2.7】
可作為任何一門網路編程課程中培養實踐技能的補充材料
需要讀者對Python語言及TCP/IP等基本的網路概念有了解,但即使不精通也能通過本書理解相關概念
本書全面介紹了Python網路編程涉及的重要問題,包括網路編程、系統和網路管理、網路監控以及Web應用開發。作者通過70多篇攻略,清晰簡明地描述了各種網路任務和問題,提出了可用於多種場景的解決方案,並細致地分析了整個操作過程。
《Python網路編程(第3版)》
【Python 3.X】
涵蓋網路編程所有經典話題,提供大量代碼清單及示例
從應用開發角度介紹網路編程基本概念、模塊以及第三方庫
本書針對想要深入理解使用Python來解決網路相關問題或是構建網路應用程序的技術人員,結合實例講解了網路協議、網路數據及錯誤、電子郵件、伺服器架構和HTTP及Web應用程序等經典話題。
具體內容包括:全面介紹Python3中最新提供的SSL支持,非同步I/O循環的編寫,用Flask框架在Python代碼中配置URL,跨站腳本以及跨站請求偽造攻擊網站的原理及保護方法,等等。
《Python性能分析與優化》
【Python 2.X】
全面掌握Python代碼性能分析和優化方法
消除性能瓶頸,迅速改善程序性能
本書首先介紹什麼是性能分析,性能分析如何在項目開發周期中發揮作用,以及通過在項目中進行性能分析實踐能夠取得的效果。
緊接著介紹分析性能所需的核心工具(性能分析器和可視化性能分析器)。
然後介紹一系列性能優化技術,最後一章會介紹一個具有實際意義的優化案例。
《精通Python設計模式》
【Python 3.X】
用現實例子展示各模式的關鍵特性
16種基本設計模式,輕松解決軟體設計常見問題
本書分三部分,共16章介紹一些常用的設計模式。
第一部分介紹處理對象創建的設計模式,包括工廠模式、建造者模式、原型模式;
第二部分介紹處理一個系統中不同實體(類、對象等)之間關系的設計模式,包括外觀模式、享元模式等;
第三部分介紹處理系統實體之間通信的設計模式,包括責任鏈模式、觀察者模式等。
《Flask Web開發:基於Python的Web應用開發實戰》
【Python 2.7和3.3】
從安裝與環境設置講起,一步一步搭建伺服器端Web應用
全流程講解Web應用開發,給出最佳實踐
本書共分三部分,全面介紹如何基於Python微框架Flask進行Web開發。
第一部分是Flask簡介,介紹使用Flask框架及擴展開發Web程序的必備基礎知識。
第二部分則給出一個實例,真正帶領大家一步步開發完整的博客和社交應用Flasky,從而將前述知識融會貫通,付諸實踐。
第三部分介紹了發布應用之前必須考慮的事項,如單元測試策略、性能分析技術、Flask程序的部署方式等。
《Python Web開發:測試驅動方法》
【(Django、Selenium)相關部分使用Python 3.3講解】
亞馬遜4.8星評好書
實戰式TDD開發指南,使用Django等流行框架開發現代Web應用!
學習Django、Selenium、Git、jQuery和Mock,以及其他當前流行Web開發技術
「這本書很棒、很有趣,所講的全都是重點知識。如果有人想用Python做測試、學習Django或者想使用Selenium,我極力推薦這本書。要使開發者保持頭腦清醒,測試可謂至關重要。Harry完成了一項不可思議的工作,他不僅吸引了我們對測試的關注,而且還探索了切實可行的測試實踐方案。」
——Michael Foord,Python核心開發者,unittest維護者
Python應用
用Python數據分析,數據處理,機器學習等等。
《數據科學入門》
【Python 2.7】
Google數據科學家、軟體工程師Joel Grus作品
用Python從零開始講解數據科學的重量級讀本
數據科學、機器學習、模式識別領域必備
本書從零開始講解數據科學。
具體內容包括Python簡介,可視化數據,線性代數,統計,概率,假設與推斷,梯度下降法,如何獲取數據,k近鄰法,樸素貝葉斯演算法等。
作者藉助大量具體例子以及數據挖掘、統計學、機器學習等領域的重要概念,通過講解基礎數據科學工具和演算法實現,帶你快速跨入數據科學大門。
書中含大量數據科學領域的庫、框架、模塊和工具包。
《機器學習實戰》
【Python 2.7】
最暢銷機器學習圖書
介紹並實現機器學習的主流演算法
面向日常任務的高效實戰內容
全書通過精心編排的實例,切入日常工作任務,摒棄學術化語言,利用高效的可復用Python代碼來闡釋如何處理統計數據,進行數據分析及可視化。
通過各種實例,讀者可從中學會機器學習的核心演算法,並能將其運用於一些策略性任務中,如分類、預測、推薦。另外,還可用它們來實現一些更高級的功能,如匯總和簡化等。
《機器學習系統設計》
【Python 2.7及以上】
微軟Bing核心團隊成員推出
聚焦演算法編寫和編程方式
結合大量實例學會解決實際問題
本書將向讀者展示如何從原始數據中發現模式,首先從Python與機器學習的關系講起,再介紹一些庫,然後就開始基於數據集進行比較正式的項目開發了,涉及建模、推薦及改進,以及聲音與圖像處理。通過流行的開源庫,我們可以掌握如何高效處理文本、圖片和聲音。同時,讀者也能掌握如何評估、比較和選擇適用的機器學習技術。
《Python數據處理》
【Python 2.7】
將數據處理過程自動化!
全面掌握用Python進行爬蟲抓取以及數據清洗與分析的方法,輕松實現高效數據處理!
本書採用基於項目的方法,介紹用Python完成數據獲取、數據清洗、數據探索、數據呈現、數據規模化和自動化的過程。
主要內容包括:Python基礎知識,如何從CSV、Excel、XML、JSON和PDF文件中提取數據,如何獲取與存儲數據,各種數據清洗與分析技術,數據可視化方法,如何從網站和API中提取數據。
《Python數據分析基礎教程:NumPy學習指南(第2版)》
【Python 2.7】
NumPy中文入門教程,Python數據分析首選
從最基礎的知識講起,手把手帶你進入大數據挖掘領域
囊括大量具有啟發性與實用價值的實戰案例
本書從NumPy安裝講起,逐漸過渡到數組對象、常用函數、矩陣運算、線性代數、金融函數、窗函數、質量控制等內容,致力於向初中級Python編程人員全面講述NumPy及其使用。
另外,通過書中豐富的示例,你還將學會Matplotlib繪圖,並結合使用其他Python科學計算庫(如SciPy和Scikits),讓工作更有成效,讓代碼更加簡潔而高效。
《Python數據挖掘入門與實踐》
【Python 3.4】
全面釋放Python的數據分析能力
掌握大數據時代核心技術,輕松入門數據挖掘技術並將其應用於實際項目
本書使用簡單易學且擁有豐富第三方庫和良好社區氛圍的Python語言,由淺入深,以真實數據作為研究對象,真刀實槍地向讀者介紹Python數據挖掘的實現方法。通過本書,讀者將邁入數據挖掘的殿堂,透徹理解數據挖掘基礎知識,掌握解決數據挖掘實際問題的最佳實踐!
《Python科學計算基礎教程》
【Python 2.7及以上】
精彩案例展示Numpy等科學計算模塊的強大功能和廣泛應用
剖析Python關於並行與大數據計算的方法
總結科學計算的任務、難點以及最佳實踐經驗
本書是將Python用於科學計算的實用指南,既介紹了相關的基礎知識,又提供了豐富的精彩案例,並為讀者總結了最佳實踐經驗。
其主要內容包括:科學計算的基本概念與選擇Python的理由,科學工作流和科學計算的結構,科學項目相關數據的各個方面,用於科學計算的API和工具包,如何利用Python的NumPy和SciPy包完成數值計算,用Python做符號計算,數據分析與可視化,並行與大規模計算,等等。
《Python數據分析實戰》
【Python 2.X】
了解Python在信息處理、管理和檢索方面的強大功能
學會如何利用Python及其衍生工具處理、分析數據
三個真實Python數據分析案例,將理論付諸實踐
《Python數據分析實戰》展示了如何利用Python 語言的強大功能,以最小的編程代價進行數據的提取、處理和分析,主要內容包括:數據分析和Python 的基本介紹,NumPy 庫,pandas 庫,如何使用pandas 讀寫和提取數據,用matplotlib 庫和scikit-learn 庫分別實現數據可視化和機器學習,以實例演示如何從原始數據獲得信息、D3 庫嵌入和手寫體數字的識別。
《Python網路數據採集》
【Python 3.X】
原書4.6星好評,一本書搞定數據採集
涵蓋數據抓取、數據挖掘和數據分析
提供詳細代碼示例,快速解決實際問題
本書介紹網路數據採集,並為採集新式網路中的各種數據類型提供了全面的指導。
第一部分重點介紹網路數據採集的基本原理:如何用Python從網路伺服器請求信息,如何對伺服器的響應進行基本處理,以及如何以自動化手段與網站進行交互。
第二部分介紹如何用網路爬蟲測試網站,自動化處理,以及如何通過更多的方式接入網路。
《Python計算機視覺編程》
【Python 2.6及以上】
亞馬遜計算機視覺類圖書No.1
詳細剖析多種計算機視覺工具
大量示例極易上手
本書是計算機視覺編程的權威實踐指南,通過Python語言講解了基礎理論與演算法,並通過大量示例細致分析了對象識別、基於內容的圖像搜索、光學字元識別、光流法、跟蹤、3D重建、立體成像、增強現實、姿態估計、全景創建、圖像分割、降噪、圖像分組等技術。