国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

Python 解析參數的三種方法

開發 后端
今天我們分享的主要目的就是通過在 Python 中使用命令行和配置文件來提高代碼的效率。

Let's go!

我們以機器學習當中的調參過程來進行實踐,有三種方式可供選擇。第一個選項是使用 argparse,它是一個流行的 Python 模塊,專門用于命令行解析;另一種方法是讀取 JSON 文件,我們可以在其中放置所有超參數;第三種也是鮮為人知的方法是使用 YAML 文件!好奇嗎,讓我們開始吧!

先決條件

在下面的代碼中,我將使用 Visual Studio Code,這是一個非常高效的集成 Python 開發環境。這個工具的美妙之處在于它通過安裝擴展支持每種編程語言,集成終端并允許同時處理大量 Python 腳本和 Jupyter 筆記本。

  • https://www.kaggle.com/datasets/lakshmi25npathi/bike-sharing-dataset

使用 argparse

就像上圖所示,我們有一個標準的結構來組織我們的小項目:

  • 包含我們數據集的名為 data 的文件夾
  • train.py 文件
  • 用于指定超參數的 options.py 文件

首先,我們可以創建一個文件 train.py,在其中我們有導入數據、在訓練數據上訓練模型并在測試集上對其進行評估的基本程序:

import pandas as pd
import numpy as np
from sklearn.ensemble import RandomForestRegressor
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.metrics import mean_squared_error, mean_absolute_error
from options import train_options
df = pd.read_csv('data\hour.csv')
print(df.head())
opt = train_options()
X=df.drop(['instant','dteday','atemp','casual','registered','cnt'],axis=1).values
y =df['cnt'].values
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
if opt.normalize == True:
scaler = StandardScaler()
X = scaler.fit_transform(X)
rf = RandomForestRegressor(n_estimators=opt.n_estimators,max_features=opt.max_features,max_depth=opt.max_depth)
model = rf.fit(X_train,y_train)
y_pred = model.predict(X_test)
rmse = np.sqrt(mean_squared_error(y_pred, y_test))
mae = mean_absolute_error(y_pred, y_test)
print("rmse: ",rmse)
print("mae: ",mae)

在代碼中,我們還導入了包含在 options.py 文件中的 train_options 函數。后一個文件是一個 Python 文件,我們可以從中更改 train.py 中考慮的超參數:

import argparse
def train_options():
parser = argparse.ArgumentParser()
parser.add_argument("--normalize", default=True, type=bool, help='maximum depth')
parser.add_argument("--n_estimators", default=100, type=int, help='number of estimators')
parser.add_argument("--max_features", default=6, type=int, help='maximum of features',)
parser.add_argument("--max_depth", default=5, type=int,help='maximum depth')
opt = parser.parse_args()
return opt

在這個例子中,我們使用了 argparse 庫,它在解析命令行參數時非常流行。首先,我們初始化解析器,然后,我們可以添加我們想要訪問的參數。

這是運行代碼的示例:

python train.py

要更改超參數的默認值,有兩種方法。第一個選項是在 options.py 文件中設置不同的默認值。另一種選擇是從命令行傳遞超參數值:

python train.py --n_estimators 200

我們需要指定要更改的超參數的名稱和相應的值。

python train.py --n_estimators 200 --max_depth 7

使用 JSON 文件

和前面一樣,我們可以保持類似的文件結構。在這種情況下,我們將 options.py 文件替換為 JSON 文件。換句話說,我們想在 JSON 文件中指定超參數的值并將它們傳遞給 train.py 文件。與 argparse 庫相比,JSON 文件可以是一種快速且直觀的替代方案,它利用鍵值對來存儲數據。下面我們創建一個 options.json 文件,其中包含我們稍后需要傳遞給其他代碼的數據。

{
"normalize":true,
"n_estimators":100,
"max_features":6,
"max_depth":5
}

如上所見,它與 Python 字典非常相似。但是與字典不同的是,它包含文本/字符串格式的數據。此外,還有一些語法略有不同的常見數據類型。例如,布爾值是 false/true,而 Python 識別 False/True。JSON 中其他可能的值是數組,它們用方括號表示為 Python 列表。

在 Python 中使用 JSON 數據的美妙之處在于,它可以通過 load 方法轉換成 Python 字典:

f = open("options.json", "rb")
parameters = json.load(f)

要訪問特定項目,我們只需要在方括號內引用它的鍵名:

if parameters["normalize"] == True:
scaler = StandardScaler()
X = scaler.fit_transform(X)
rf=RandomForestRegressor(n_estimators=parameters["n_estimators"],max_features=parameters["max_features"],max_depth=parameters["max_depth"],random_state=42)
model = rf.fit(X_train,y_train)
y_pred = model.predict(X_test)

使用 YAML 文件

最后一種選擇是利用 YAML 的潛力。與 JSON 文件一樣,我們將 Python 代碼中的 YAML 文件作為字典讀取,以訪問超參數的值。YAML 是一種人類可讀的數據表示語言,其中層次結構使用雙空格字符表示,而不是像 JSON 文件中的括號。下面我們展示 options.yaml 文件將包含的內容:

normalize: True  
n_estimators: 100
max_features: 6
max_depth: 5

在 train.py 中,我們打開 options.yaml 文件,該文件將始終使用 load 方法轉換為 Python 字典,這一次是從 yaml 庫中導入的:

import yaml
f = open('options.yaml','rb')
parameters = yaml.load(f, Loader=yaml.FullLoader)

和前面一樣,我們可以使用字典所需的語法訪問超參數的值。

最后的想法

配置文件的編譯速度非常快,而 argparse 則需要為我們要添加的每個參數編寫一行代碼。

所以我們應該根據自己的不同情況來選擇最為合適的方式

例如,如果我們需要為參數添加注釋,JSON 是不合適的,因為它不允許注釋,而 YAML 和 argparse 可能非常適合。

責任編輯:龐桂玉 來源: AI科技大本營
相關推薦

2024-11-15 07:00:00

Python發送郵件

2009-07-08 12:56:32

編寫Servlet

2010-08-31 13:18:22

CSS浮動

2010-09-14 15:10:49

CSS注釋

2011-04-18 15:32:45

游戲測試測試方法軟件測試

2023-08-14 17:58:13

RequestHTTP請求

2009-12-11 18:49:39

預算編制博科資訊

2021-02-06 11:26:55

Python開發list

2022-04-28 07:26:17

PythonDocker容器

2011-06-10 10:43:12

Ubuntu應用安裝

2009-06-23 10:45:18

Hibernate支持

2021-02-03 18:05:30

Python方法列表

2021-09-10 18:09:42

SQL注入漏洞網絡攻擊

2021-07-13 12:31:27

IT組織改進首席技術官

2009-07-23 15:17:54

JDBC連接Acces

2021-10-09 06:59:36

技術MyBatis數據

2023-09-25 15:08:43

Python方離群值

2021-12-20 07:11:26

Java List排序 Java 基礎

2023-05-16 16:07:07

大數據數據管理工具

2010-10-20 13:52:07

SQL Server數
點贊
收藏

51CTO技術棧公眾號

欧美美女福利视频| 亚洲国产天堂| 国内精品视频666| 欧美另类高清videos| 欧美女优在线| 久久久久国产精品人| 美女一区视频| 国精一区二区| 欧美xxxx做受欧美| 在线三级中文| 自拍偷拍国产精品| 亚洲国产婷婷香蕉久久久久久99| 久操国产精品| 精品国偷自产在线视频| 99久久精品免费观看国产| 亚洲男人的天堂一区二区| 日本人妻伦在线中文字幕| 99精品欧美| 成人久久精品视频| 成人台湾亚洲精品一区二区| 亚洲精品国产精品国产自| 国产在线中文字幕| 一卡二卡欧美日韩| caoporn超碰97| 国产一区不卡精品| 日本精品免费| 99视频+国产日韩欧美| 国产啪精品视频网站| 久久中文资源| 久久成人18免费网站| 91精品论坛| 日韩一区二区在线看| 国产色a在线| 精品久久久久久中文字幕一区奶水| 韩国中文字幕av| 懂色av一区二区夜夜嗨| 影音先锋欧美资源| 日韩中文字幕一区二区三区| 精品久久蜜桃| 国产精品日韩| 你懂的网址一区二区三区| 亚洲电影成人| 超碰97在线资源| 91tv精品福利国产在线观看| 国产日韩欧美电影在线观看| 日韩av自拍| 91亚洲人电影| 欧美久久久久| 国产日韩欧美精品| 国色天香一区二区| 国产欧美日韩视频一区二区三区| 欧美另类亚洲| 麻豆av一区二区三区久久| 丝袜亚洲精品中文字幕一区| 日本欧洲国产一区二区| 蜜桃精品视频在线| www.激情网| 久久久三级国产网站| 久久精品99国产| 综合av第一页| 青青草视频在线观看| 91国内精品野花午夜精品| 韩国福利在线| 日韩免费福利电影在线观看| 国产美女精品写真福利视频| 亚洲天堂精品在线| 国产精品66| 秋霞成人午夜鲁丝一区二区三区| 欧美gay男男猛男无套| 91久久伊人青青碰碰婷婷| 鲁大师影院一区二区三区| 国内自拍中文字幕| 欧美激情综合五月色丁香| 伊人国产在线| 亚洲成人网av| 欧美激情三级| 91欧美精品午夜性色福利在线| 久久不射2019中文字幕| 日韩中字在线观看| 亚洲福利国产精品| xxx.xxx欧美| 欧美激情视频网| 亚洲一级黄色| 日本精品一区在线观看| 偷拍日韩校园综合在线| 福利成人导航| 4438全国亚洲精品在线观看视频| 欧美特黄a级高清免费大片a级| 一区二区成人国产精品| 欧美极品少妇xxxxⅹ高跟鞋 | 麻豆专区一区二区三区四区五区| 久久久久久久久久久综合| 亚洲老司机在线| 四虎av在线| 69视频在线播放| 视频在线在亚洲| 天堂一区在线观看| 91精品国产日韩91久久久久久| 韩国三级成人在线| 国产自产在线视频一区| 91免费观看视频| 色欧美激情视频在线| 久久99亚洲精品| 久久蜜桃资源一区二区老牛| 国产精品视频黄色| 欧美一卡二卡在线观看| 林ゆな中文字幕一区二区| 亚洲激情啪啪| 天天综合天天综合色| 欧美日韩va| 麻豆传媒一区二区| 夜夜揉揉日日人人青青一国产精品| 在线人成日本视频| 91社区国产高清| 91理论电影在线观看| 黄色成人影院| 国产免费观看久久黄| 99久久综合狠狠综合久久| 黄色网页在线免费看| 国产精品xxxxx| 99视频在线精品| 欧美人与性动交α欧美精品济南到 | 亚洲国产一区二区三区网站| 久久影院理伦片| 亚洲无线码一区二区三区| 日韩av黄色| 国产又黄又爽免费视频| 精品污污网站免费看| 第一会所亚洲原创| jizz欧美激情18| 亚洲片在线资源| 天堂成人国产精品一区| 人成在线免费视频| 4388成人网| 国产亚洲综合性久久久影院| 在线免费日韩片| 91手机视频在线| 精品成人一区二区| 亚洲美女色禁图| 日韩av高清在线| 国产日本欧美视频| 亚洲欧美日韩精品久久久久| 视频二区欧美| 欧美在线一区视频| 亚洲女同性videos| 极品美女销魂一区二区三区免费| 永久免费网站在线| 欧美精品在线一区| 欧美三级蜜桃2在线观看| 青青草原综合久久大伊人精品 | 日日夜夜精品一区| 99九九视频| 欧美午夜一区二区三区免费大片| 欧美aaaaaaaaaaaa| 日本在线一二三| 国产精品久久久久久久小唯西川| 一本大道久久a久久精品综合| 99久久精品网站| 国产一区二区三区福利| 成人资源av| 91精品国产一区二区三区香蕉| 国产日韩免费| 日韩另类在线| 一区二区日本| 尤物九九久久国产精品的特点| 国产麻豆精品95视频| 欧美一区 二区 三区| 日韩精品xxxx| 7777免费精品视频| 亚洲va韩国va欧美va| 欧美成人国产| 欧美黑人xx片| 日本大片免费看| 欧美极品美女视频网站在线观看免费 | 3atv在线一区二区三区| 久久久久国产精品一区二区| 黑人极品ⅴideos精品欧美棵| 在线日韩av永久免费观看| 亚洲欧洲免费视频| 久久久久久97三级| 久久99国产成人小视频| 日韩电影免费| 午夜欧美性电影| 久久精品精品电影网| 亚洲欧美另类久久久精品2019| 久久一区二区三区电影| 免费网站免费进入在线| 久久久久久久久影视| 国模私拍一区二区三区| 亚洲一区在线观看免费 | 婷婷综合久久| 黄a在线观看| 国产素人在线观看| 国产精品av在线播放| 欧美性大战久久久久久久| 国产一区二区三区日韩| 奇米影视777在线欧美电影观看 | 日韩成人在线视频| 国产精品美日韩| 国产深夜精品|