成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

穩定輸出加速開發:數據科學項目開始時應該包括的7個設置

開發 前端
在開始一項數據科學項目時,我們通常需要進行設置或配置,以確保所需的依賴關系,保持輸出穩定,準備通用函數。本文將介紹JuypterNotebook中最有幫助的一些項目設置。

本文轉載自公眾號“讀芯術”(ID:AI_Discovery)。

在開始一項數據科學項目時,我們通常需要進行設置或配置,以確保所需的依賴關系,保持輸出穩定,準備通用函數。

穩定輸出加速開發:數據科學項目開始時應該包括的7個設置

項目設置的一個案例(來自Handson-ML2)

本文將介紹JuypterNotebook中最有幫助的一些項目設置。

1. 確保Python版本

檢查JupyterNotebook中的Python解釋器版本:

  1. import sys 
  2. sys.version'3.7.6 (default, Jan 8 2020, 13:42:34) \n[Clang 4.0.1 (tags/RELEASE_401/final)]' 

為確保項目由Python解釋器的最低及以上要求版本運行,可在項目設置中添加以下代碼:

  1. # Python ≥3.7 is required 
  2. import sys 
  3. assert sys.version_info >= (3, 7) 

Python需要為3.7及以上版本,否則會拋出AssertionError。

2. 確保程序包版本

檢查安裝的程序包版本,如TensorFlow。

  1. import tensorflow as tf 
  2. tf.__version__'2.0.0' 

確保項目是由TensorFlow2.0及以上版本運行的,否則會拋出AssertionError。

  1. # TensorFlow ≥2.0 is required 
  2. import tensorflow as tf 
  3. assert tf.__version__ >= "2.0" 

3. 避免繪制模糊圖像

JuypterNotebook中的默認繪圖看起來有些模糊。例如,一張查找缺失值的簡單熱圖。

(https://towardsdatascience.com/using-pandas-pipe-function-to-improve-code-readability-96d66abfaf8)

  1. import seaborn as sns 
  2. import matplotlib.pyplot as plt 
  3. %matplotlib inline# Default figure format png 
  4. sns.heatmap(df.isnull(), 
  5.             yticklabels=False
  6.             cbar=False
  7.             cmap='viridis'

穩定輸出加速開發:數據科學項目開始時應該包括的7個設置

默認圖像看起來很模糊

由上圖可以看出,文本很模糊,Cabin欄中的缺失值過于擁擠,Embarked欄中的缺失值無法識別。

要解決這個問題,可在%matplotlib inline之后使用%config InlineBackend.figure_format='retina'或 %configInlineBackend.figure_format = 'svg',即:

  1. %matplotlib inline 
  2. %config InlineBackend.figure_format = 'retina'         # or 'svg'sns.heatmap(df.isnull(), 
  3.             yticklabels=False
  4.             cbar=False
  5.             cmap='viridis'

穩定輸出加速開發:數據科學項目開始時應該包括的7個設置

圖片格式設置為retina或svg

與先前的圖片比較,上圖更加清晰,Embarked欄中的缺失值也能成功識別。

4. 在不同運行中保持輸出穩定

數據科學項目中很多地方都在使用隨機數字。例如:

  • 來自Scikit-Learn的 train_test_split()
  • 用于初始化權重的np.random.rand()

若未重置隨機種子,則每次調用都會出現不同的數字:

  1. >>> np.random.rand(4) 
  2. array([0.83209492, 0.10917076, 0.15798519, 0.99356723]) 
  3. >>> np.random.rand(4) 
  4. array([0.46183001, 0.7523687 , 0.96599624, 0.32349079]) 

np.random.seed(0)使隨機數字可預測:

  1. >>> np.random.seed(0) 
  2. >>> np.random.rand(4) 
  3. array([0.5488135 , 0.71518937, 0.60276338, 0.54488318]) 
  4. >>> np.random.seed(0) 
  5. >>> np.random.rand(4) 
  6. array([0.5488135 , 0.71518937, 0.60276338, 0.54488318]) 

如果(每次)都重置隨機種子,那么每次都會出現相同的數據組。因此,項目能在不同運行中保持輸出穩定。

5. 多單元輸出

默認情況下,JupyterNotebook不能在同一單元中輸出多種結果。要輸出多種結果,可使用IPython重新配置shell。

  1. from IPython.core.interactiveshell import InteractiveShell 
  2. InteractiveShell.ast_node_interactivity = "all" 

穩定輸出加速開發:數據科學項目開始時應該包括的7個設置

6. 將圖片保存到文件

Matplotlib能通過savefig()方法保存圖片,但如果給定路徑不存在則會引發錯誤。

  1. plt.savefig('./figures/my_plot.png')FileNotFoundError: [Errno 2] Nosuch file or directory: './figures/my_plot.png' 

最好的做法是將所有圖片都放到一個地方,如工作區的figures文件夾。可使用OS GUI(操作系統界面)或是在JupyterNotebook中運行logic指令,來手動創建一個figures文件夾,但是最好創建一個小函數來實現該操作。

當需要一些自定義圖形設置或附加子文件夾來分組圖形時,這種方法尤其適用。以下是將圖片保存到文件的函數:

  1. import os 
  2. %matplotlib inline 
  3. import matplotlib.pyplot as plt# Where to save the figures 
  4. PROJECT_ROOT_DIR = "." 
  5. SUB_FOLDER = "sub_folder"    #a sub-folder 
  6. IMAGES_PATH = os.path.join(PROJECT_ROOT_DIR, "images", SUB_FOLDER)defsave_fig(name, images_path=IMAGES_PATHtight_layout=True,extension="png"resolution=300): 
  7.     if not os.path.isdir(images_path): 
  8.         os.makedirs(images_path) 
  9.     path = os.path.join(images_path, name+ "." + extension) 
  10.     print("Saving figure:",name) 
  11.     if tight_layout: 
  12.         plt.tight_layout() 
  13.     plt.savefig(path, format=extension,dpi=resolution

現在調用save_fig('figure_name'),會在工作區中創建一個images/sub_folder目錄,圖片以“figure_name.png”名稱被保存到目錄中。此外,還提供了三個最常用的設置:

  • tight_layout 能自動調整子圖填充
  • extension 能以多種格式保存圖片
  • resolution 可設置圖片分辨率

穩定輸出加速開發:數據科學項目開始時應該包括的7個設置

穩定輸出加速開發:數據科學項目開始時應該包括的7個設置

7. 下載數據(并解壓)

處理網絡數據對于數據科學工作者是常事。可以使用瀏覽器下載數據,并運行指令來解壓文件,但最好的是創建一個小函數來執行該操作。當數據需要定期更改時,這一點尤其重要。

編寫一個小腳本,在獲取最新數據時運行(也可以設置一個定期自動執行的計劃工作)即可。如果需要在多臺機器上安裝數據集,自動化抓取數據流程也十分有用。

以下是下載并解壓數據的函數:

  1. import os 
  2. import tarfile 
  3. import zipfile 
  4. import urllib 
  5.   
  6. # Where to save the data 
  7. PROJECT_ROOT_DIR = "." 
  8. SUB_FOLDER = "group_name" 
  9. LOCAL_PATH = os.path.join(PROJECT_ROOT_DIR, "datasets", SUB_FOLDER)defdownload(file_url, local_path = LOCAL_PATH): 
  10.     if not os.path.isdir(local_path): 
  11.         os.makedirs(local_path) 
  12.         
  13.     # Download file 
  14.     print(">>>downloading") 
  15.     filename = os.path.basename(file_url) 
  16.     file_local_path =os.path.join(local_path, filename) 
  17.     urllib.request.urlretrieve(file_url,file_local_path) 
  18.     
  19.     # untar/unzip file 
  20.     if filename.endswith("tgz")or filename.endswith("tar.gz"): 
  21.         print(">>>unpacking file:", filename) 
  22.         tar =tarfile.open(file_local_path, "r:gz") 
  23.         tar.extractall(path = local_path
  24.         tar.close() 
  25.     eliffilename.endswith("tar"): 
  26.         print(">>> unpackingfile:", filename) 
  27.         tar =tarfile.open(file_local_path, "r:") 
  28.         tar.extractall(path = local_path
  29.         tar.close() 
  30.     eliffilename.endwith("zip"): 
  31.         print(">>>unpacking file:", filename) 
  32.         zip_file = zipfile.ZipFile(file_local_path) 
  33.         zip_file.extractall(path =local_path
  34.         zip_file.close() 
  35.     print("Done") 

現在調用download("http://a_valid_url/housing.tgz"),會在工作區創建一個datasets/group_name目錄,下載housing.tgz,并從該目錄中提取出housing.csv ,這個小函數也能用于CSV和文本文件。

[[337548]]

圖源:unsplash

請查看筆者Github庫中的源代碼:

https://github.com/BindiChen/machine-learning/blob/master/data-analysis/004-7-setups-for-a-data-science-project/7-setups.ipynb

 

責任編輯:趙寧寧 來源: 今日頭條
相關推薦

2019-12-03 09:11:57

數據科學編程算法

2012-11-13 10:34:03

PythonWeb

2021-01-29 14:38:36

數據科學數據科學家統計學

2021-02-20 21:29:40

GitHub代碼開發者

2019-10-14 15:41:37

數據科學GitHub機器學習

2021-04-06 08:00:00

數據湖存儲技術

2024-12-04 08:00:00

數據科學數據ETL管道

2019-12-19 14:42:40

開源數據科學項目

2021-06-29 10:03:45

數據科學機器學習算法

2020-09-17 14:20:24

數據科學簡歷崗位

2012-09-10 10:26:22

工作工作習慣調整心態

2019-08-07 18:52:40

GPU數據科學CPU

2017-09-11 15:46:36

數據科學語言Java

2019-07-03 15:21:47

數據科學統計數據數據結構

2018-04-09 11:20:40

數據科學項目數據

2017-09-18 10:36:35

Python類庫開發者

2013-07-04 13:19:24

Java開發速度

2019-10-22 08:00:22

數據科學AWSDC

2021-09-13 13:43:43

圖數據科學

2015-09-01 16:27:31

薪資錯誤
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 一区二区三区四区不卡 | 在线成人av| 欧美精品一区二区三区在线播放 | 久久精品99国产精品日本 | 在线欧美亚洲 | 久一精品| 免费一区二区三区 | 国产精品美女久久久久久久网站 | 一区二区三区免费 | 四虎影视免费观看 | 午夜爽爽爽男女免费观看 | 日韩免费视频一区二区 | 麻豆精品国产91久久久久久 | 欧美1区 | 亚洲毛片 | 精品视频在线一区 | 国产成人99久久亚洲综合精品 | 国内久久 | 亚洲五码久久 | 毛片一级片 | sese视频在线观看 | 精品国产一区二区三区观看不卡 | 国产高清视频 | 国产高清久久 | www.久久99| 久久久这里都是精品 | 日本黄色高清视频 | 狠狠久| 视频第一区 | 久久精品视频99 | 亚洲视频二区 | 日韩欧美三区 | 欧美精品被 | 亚洲精品日韩在线观看 | 日韩国产高清在线观看 | 国产精品一区二区视频 | 国产高清美女一级a毛片久久w | 岛国在线免费观看 | 久久久久国产精品午夜一区 | aa级毛片毛片免费观看久 | 久久亚洲国产精品日日av夜夜 |