在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

PyTorch教程-5.7. 在 Kaggle 上預(yù)測(cè)房?jī)r(jià)

jf_pJlTbmA9 ? 來(lái)源:PyTorch ? 作者:PyTorch ? 2023-06-05 15:43 ? 次閱讀

現(xiàn)在我們已經(jīng)介紹了一些用于構(gòu)建和訓(xùn)練深度網(wǎng)絡(luò)并使用包括權(quán)重衰減和丟失在內(nèi)的技術(shù)對(duì)其進(jìn)行正則化的基本工具,我們準(zhǔn)備通過(guò)參加 Kaggle 競(jìng)賽將所有這些知識(shí)付諸實(shí)踐。房?jī)r(jià)預(yù)測(cè)競(jìng)賽是一個(gè)很好的起點(diǎn)。數(shù)據(jù)相當(dāng)通用,沒有表現(xiàn)出可能需要專門模型(如音頻視頻可能)的奇異結(jié)構(gòu)。該數(shù)據(jù)集由 De Cock ( 2011 )收集,涵蓋 2006 年至 2010 年愛荷華州埃姆斯的房?jī)r(jià)。 它比Harrison 和 Rubinfeld (1978)著名的波士頓住房數(shù)據(jù)集大得多,擁有更多的例子和更多的特征。

在本節(jié)中,我們將帶您了解數(shù)據(jù)預(yù)處理、模型設(shè)計(jì)和超參數(shù)選擇的詳細(xì)信息。我們希望通過(guò)實(shí)踐方法,您將獲得一些直覺,這些直覺將指導(dǎo)您作為數(shù)據(jù)科學(xué)家的職業(yè)生涯。

%matplotlib inline
import pandas as pd
import torch
from torch import nn
from d2l import torch as d2l

%matplotlib inline
import pandas as pd
from mxnet import autograd, gluon, init, np, npx
from mxnet.gluon import nn
from d2l import mxnet as d2l

npx.set_np()

%matplotlib inline
import jax
import numpy as np
import pandas as pd
from jax import numpy as jnp
from d2l import jax as d2l

No GPU/TPU found, falling back to CPU. (Set TF_CPP_MIN_LOG_LEVEL=0 and rerun for more info.)

%matplotlib inline
import pandas as pd
import tensorflow as tf
from d2l import tensorflow as d2l

5.7.1. 下載數(shù)據(jù)

在整本書中,我們將在各種下載的數(shù)據(jù)集上訓(xùn)練和測(cè)試模型。在這里,我們實(shí)現(xiàn)了兩個(gè)實(shí)用函數(shù)來(lái)下載文件和提取 zip 或 tar 文件。同樣,我們將它們的實(shí)現(xiàn)推遲到 第 23.7 節(jié)。

def download(url, folder, sha1_hash=None):
  """Download a file to folder and return the local filepath."""

def extract(filename, folder):
  """Extract a zip/tar file into folder."""

5.7.2. 格格

Kaggle是一個(gè)舉辦機(jī)器學(xué)習(xí)競(jìng)賽的流行平臺(tái)。每場(chǎng)比賽都以數(shù)據(jù)集為中心,許多比賽由利益相關(guān)者贊助,他們?yōu)楂@勝的解決方案提供獎(jiǎng)勵(lì)。該平臺(tái)幫助用戶通過(guò)論壇和共享代碼進(jìn)行交互,促進(jìn)協(xié)作和競(jìng)爭(zhēng)。雖然排行榜追逐經(jīng)常失控,研究人員短視地關(guān)注預(yù)處理步驟而不是提出基本問題,但平臺(tái)的客觀性也具有巨大價(jià)值,該平臺(tái)有助于競(jìng)爭(zhēng)方法之間的直接定量比較以及代碼共享,以便每個(gè)人都可以了解哪些有效,哪些無(wú)效。如果你想?yún)⒓?Kaggle 比賽,你首先需要注冊(cè)一個(gè)賬號(hào)(見圖 5.7.1)。

poYBAGR3IKiAAYRAAAKeYMfXAiY589.png

圖 5.7.1 Kaggle 網(wǎng)站。

在房?jī)r(jià)預(yù)測(cè)比賽頁(yè)面,如圖 5.7.2所示,可以找到數(shù)據(jù)集(在“數(shù)據(jù)”選項(xiàng)卡下),提交預(yù)測(cè),就可以看到你的排名,網(wǎng)址在這里:

https://www.kaggle.com/c/house-prices-advanced-regression-techniques

pYYBAGR3IK2AIz08AAJE64c9ZKo210.png

圖 5.7.2房?jī)r(jià)預(yù)測(cè)比賽頁(yè)面。

5.7.3. 訪問和讀取數(shù)據(jù)集

請(qǐng)注意,比賽數(shù)據(jù)分為訓(xùn)練集和測(cè)試集。每條記錄包括房屋的屬性值和街道類型、建造年份、屋頂類型、地下室狀況等屬性。特征由各種數(shù)據(jù)類型組成。例如,建造年份用整數(shù)表示,屋頂類型用離散的分類分配表示,其他特征用浮點(diǎn)數(shù)表示。這就是現(xiàn)實(shí)使事情復(fù)雜化的地方:例如,一些數(shù)據(jù)完全缺失,缺失值簡(jiǎn)單地標(biāo)記為“na”。每個(gè)房子的價(jià)格僅包含在訓(xùn)練集中(畢竟這是一場(chǎng)比賽)。我們希望對(duì)訓(xùn)練集進(jìn)行分區(qū)以創(chuàng)建驗(yàn)證集,但我們只能在將預(yù)測(cè)上傳到 Kaggle 后才能在官方測(cè)試集上評(píng)估我們的模型。圖 5.7.2有下載數(shù)據(jù)的鏈接。

首先,我們將pandas使用我們?cè)诘?2.2 節(jié)中介紹的方法讀入和處理數(shù)據(jù)。為了方便起見,我們可以下載并緩存 Kaggle 住房數(shù)據(jù)集。如果與此數(shù)據(jù)集對(duì)應(yīng)的文件已存在于緩存目錄中并且其 SHA-1 匹配sha1_hash,我們的代碼將使用緩存文件以避免因冗余下載而阻塞您的互聯(lián)網(wǎng)。

class KaggleHouse(d2l.DataModule):
  def __init__(self, batch_size, train=None, val=None):
    super().__init__()
    self.save_hyperparameters()
    if self.train is None:
      self.raw_train = pd.read_csv(d2l.download(
        d2l.DATA_URL + 'kaggle_house_pred_train.csv', self.root,
        sha1_hash='585e9cc93e70b39160e7921475f9bcd7d31219ce'))
      self.raw_val = pd.read_csv(d2l.download(
        d2l.DATA_URL + 'kaggle_house_pred_test.csv', self.root,
        sha1_hash='fa19780a7b011d9b009e8bff8e99922a8ee2eb90'))

訓(xùn)練數(shù)據(jù)集包含 1460 個(gè)示例、80 個(gè)特征和 1 個(gè)標(biāo)簽,而驗(yàn)證數(shù)據(jù)包含 1459 個(gè)示例和 80 個(gè)特征。

data = KaggleHouse(batch_size=64)
print(data.raw_train.shape)
print(data.raw_val.shape)

Downloading ../data/kaggle_house_pred_train.csv from http://d2l-data.s3-accelerate.amazonaws.com/kaggle_house_pred_train.csv...
Downloading ../data/kaggle_house_pred_test.csv from http://d2l-data.s3-accelerate.amazonaws.com/kaggle_house_pred_test.csv...
(1460, 81)
(1459, 80)

data = KaggleHouse(batch_size=64)
print(data.raw_train.shape)
print(data.raw_val.shape)

Downloading ../data/kaggle_house_pred_train.csv from http://d2l-data.s3-accelerate.amazonaws.com/kaggle_house_pred_train.csv...
Downloading ../data/kaggle_house_pred_test.csv from http://d2l-data.s3-accelerate.amazonaws.com/kaggle_house_pred_test.csv...
(1460, 81)
(1459, 80)

data = KaggleHouse(batch_size=64)
print(data.raw_train.shape)
print(data.raw_val.shape)

Downloading ../data/kaggle_house_pred_train.csv from http://d2l-data.s3-accelerate.amazonaws.com/kaggle_house_pred_train.csv...
Downloading ../data/kaggle_house_pred_test.csv from http://d2l-data.s3-accelerate.amazonaws.com/kaggle_house_pred_test.csv...
(1460, 81)
(1459, 80)

data = KaggleHouse(batch_size=64)
print(data.raw_train.shape)
print(data.raw_val.shape)

Downloading ../data/kaggle_house_pred_train.csv from http://d2l-data.s3-accelerate.amazonaws.com/kaggle_house_pred_train.csv...
Downloading ../data/kaggle_house_pred_test.csv from http://d2l-data.s3-accelerate.amazonaws.com/kaggle_house_pred_test.csv...
(1460, 81)
(1459, 80)

5.7.4. 數(shù)據(jù)預(yù)處理

我們來(lái)看看前四個(gè)和最后兩個(gè)特征以及前四個(gè)示例中的標(biāo)簽 (SalePrice)。

print(data.raw_train.iloc[:4, [0, 1, 2, 3, -3, -2, -1]])

  Id MSSubClass MSZoning LotFrontage SaleType SaleCondition SalePrice
0  1     60    RL     65.0    WD    Normal   208500
1  2     20    RL     80.0    WD    Normal   181500
2  3     60    RL     68.0    WD    Normal   223500
3  4     70    RL     60.0    WD    Abnorml   140000

print(data.raw_train.iloc[:4, [0, 1, 2, 3, -3, -2, -1]])

  Id MSSubClass MSZoning LotFrontage SaleType SaleCondition SalePrice
0  1     60    RL     65.0    WD    Normal   208500
1  2     20    RL     80.0    WD    Normal   181500
2  3     60    RL     68.0    WD    Normal   223500
3  4     70    RL     60.0    WD    Abnorml   140000

print(data.raw_train.iloc[:4, [0, 1, 2, 3, -3, -2, -1]])

  Id MSSubClass MSZoning LotFrontage SaleType SaleCondition SalePrice
0  1     60    RL     65.0    WD    Normal   208500
1  2     20    RL     80.0    WD    Normal   181500
2  3     60    RL     68.0    WD    Normal   223500
3  4     70    RL     60.0    WD    Abnorml   140000

print(data.raw_train.iloc[:4, [0, 1, 2, 3, -3, -2, -1]])

  Id MSSubClass MSZoning LotFrontage SaleType SaleCondition SalePrice
0  1     60    RL     65.0    WD    Normal   208500
1  2     20    RL     80.0    WD    Normal   181500
2  3     60    RL     68.0    WD    Normal   223500
3  4     70    RL     60.0    WD    Abnorml   140000

我們可以看到,在每個(gè)示例中,第一個(gè)特征是 ID。這有助于模型識(shí)別每個(gè)訓(xùn)練示例。雖然這很方便,但它不攜帶任何用于預(yù)測(cè)目的的信息。因此,我們將在將數(shù)據(jù)輸入模型之前將其從數(shù)據(jù)集中刪除。此外,鑒于數(shù)據(jù)類型多種多樣,我們需要在開始建模之前對(duì)數(shù)據(jù)進(jìn)行預(yù)處理。

讓我們從數(shù)字特征開始。首先,我們應(yīng)用啟發(fā)式方法,用相應(yīng)特征的平均值替換所有缺失值。然后,為了將所有特征放在一個(gè)共同的尺度上,我們通過(guò)將特征重新縮放為零均值和單位方差來(lái)標(biāo)準(zhǔn)化數(shù)據(jù):

(5.7.1)x←x?μσ,

在哪里μ和σ分別表示平均值和標(biāo)準(zhǔn)偏差。為了驗(yàn)證這確實(shí)改變了我們的特征(變量),使其具有零均值和單位方差,請(qǐng)注意 E[x?μσ]=μ?μσ=0然后 E[(x?μ)2]=(σ2+μ2)?2μ2+μ2=σ2. 直覺上,我們標(biāo)準(zhǔn)化數(shù)據(jù)有兩個(gè)原因。首先,證明它便于優(yōu)化。其次,因?yàn)槲覀兿闰?yàn)地不知道 哪些特征是相關(guān)的,所以我們不想懲罰分配給一個(gè)特征的系數(shù)比其他任何特征更多。

接下來(lái)我們處理離散值。這包括諸如“MSZoning”之類的功能。我們將它們替換為 one-hot 編碼,其方式與我們之前將多類標(biāo)簽轉(zhuǎn)換為向量的方式相同(請(qǐng)參閱 第 4.1.1 節(jié))。例如,“MSZoning”采用值“RL”和“RM”。刪除“MSZoning”特征,創(chuàng)建兩個(gè)新的指標(biāo)特征“MSZoning_RL”和“MSZoning_RM”,其值為0或1。根據(jù)one-hot編碼,如果“MSZoning”的原始值為“RL”,則“ MSZoning_RL” 為 1,“MSZoning_RM” 為 0。pandas包會(huì)自動(dòng)為我們完成此操作。

@d2l.add_to_class(KaggleHouse)
def preprocess(self):
  # Remove the ID and label columns
  label = 'SalePrice'
  features = pd.concat(
    (self.raw_train.drop(columns=['Id', label]),
     self.raw_val.drop(columns=['Id'])))
  # Standardize numerical columns
  numeric_features = features.dtypes[features.dtypes!='object'].index
  features[numeric_features] = features[numeric_features].apply(
    lambda x: (x - x.mean()) / (x.std()))
  # Replace NAN numerical features by 0
  features[numeric_features] = features[numeric_features].fillna(0)
  # Replace discrete features by one-hot encoding
  features = pd.get_dummies(features, dummy_na=True)
  # Save preprocessed features
  self.train = features[:self.raw_train.shape[0]].copy()
  self.train[label] = self.raw_train[label]
  self.val = features[self.raw_train.shape[0]:].copy()

您可以看到此轉(zhuǎn)換將特征數(shù)量從 79 增加到 331(不包括 ID 和標(biāo)簽列)。

data.preprocess()
data.train.shape

(1460, 332)

data.preprocess()
data.train.shape

(1460, 332)

data.preprocess()
data.train.shape

(1460, 332)

data.preprocess()
data.train.shape

(1460, 332)

5.7.5. 誤差測(cè)量

首先,我們將訓(xùn)練一個(gè)具有平方損失的線性模型。毫不奇怪,我們的線性模型不會(huì)導(dǎo)致提交競(jìng)賽獲勝,但它提供了完整性檢查以查看數(shù)據(jù)中是否存在有意義的信息。如果我們?cè)谶@里不能比隨機(jī)猜測(cè)做得更好,那么我們很可能遇到數(shù)據(jù)處理錯(cuò)誤。如果一切正常,線性模型將作為基線,讓我們直觀地了解簡(jiǎn)單模型與最佳報(bào)告模型的接近程度,讓我們了解我們應(yīng)該從更高級(jí)的模型中獲得多少收益。

對(duì)于房?jī)r(jià),就像股票價(jià)格一樣,我們更關(guān)心相對(duì)數(shù)量而不是絕對(duì)數(shù)量。因此我們更傾向于關(guān)心相對(duì)誤差y?y^y比關(guān)于絕對(duì)誤差y?y^. 例如,如果我們?cè)诠烙?jì)俄亥俄州農(nóng)村地區(qū)的房屋價(jià)格時(shí)預(yù)測(cè)偏離 100,000 美元,那里典型房屋的價(jià)值為 125,000 美元,那么我們可能做得很糟糕。另一方面,如果我們?cè)诩永D醽喼莸?Los Altos Hills 出現(xiàn)這個(gè)數(shù)額的錯(cuò)誤,這可能代表了一個(gè)驚人準(zhǔn)確的預(yù)測(cè)(那里的房?jī)r(jià)中位數(shù)超過(guò) 400 萬(wàn)美元)。

解決這個(gè)問題的一種方法是衡量?jī)r(jià)格估計(jì)的對(duì)數(shù)差異。事實(shí)上,這也是比賽用來(lái)評(píng)估提交質(zhì)量的官方誤差衡量標(biāo)準(zhǔn)。畢竟價(jià)值不高δ為了 |log?y?log?y^|≤δ翻譯成 e?δ≤y^y≤eδ. 這導(dǎo)致預(yù)測(cè)價(jià)格的對(duì)數(shù)與標(biāo)簽價(jià)格的對(duì)數(shù)之間存在以下均方根誤差:

(5.7.2)1n∑i=1n(log?yi?log?y^i)2.

@d2l.add_to_class(KaggleHouse)
def get_dataloader(self, train):
  label = 'SalePrice'
  data = self.train if train else self.val
  if label not in data: return
  get_tensor = lambda x: torch.tensor(x.values, dtype=torch.float32)
  # Logarithm of prices
  tensors = (get_tensor(data.drop(columns=[label])), # X
        torch.log(get_tensor(data[label])).reshape((-1, 1))) # Y
  return self.get_tensorloader(tensors, train)

@d2l.add_to_class(KaggleHouse)
def get_dataloader(self, train):
  label = 'SalePrice'
  data = self.train if train else self.val
  if label not in data: return
  get_tensor = lambda x: np.array(x.values, dtype=np.float32)
  # Logarithm of prices
  tensors = (get_tensor(data.drop(columns=[label])), # X
        np.log(get_tensor(data[label])).reshape((-1, 1))) # Y
  return self.get_tensorloader(tensors, train)

@d2l.add_to_class(KaggleHouse)
def get_dataloader(self, train):
  label = 'SalePrice'
  data = self.train if train else self.val
  if label not in data: return
  get_tensor = lambda x: jnp.array(x.values, dtype=jnp.float32)
  # Logarithm of prices
  tensors = (get_tensor(data.drop(columns=[label])), # X
        jnp.log(get_tensor(data[label])).reshape((-1, 1))) # Y
  return self.get_tensorloader(tensors, train)

@d2l.add_to_class(KaggleHouse)
def get_dataloader(self, train):
  label = 'SalePrice'
  data = self.train if train else self.val
  if label not in data: return
  get_tensor = lambda x: tf.constant(x.values, dtype=tf.float32)
  # Logarithm of prices
  tensors = (get_tensor(data.drop(columns=[label])), # X
        tf.reshape(tf.math.log(get_tensor(data[label])), (-1, 1))) # Y
  return self.get_tensorloader(tensors, train)

5.7.6.K-折疊交叉驗(yàn)證

您可能還記得我們?cè)诘?3.6.3 節(jié)中介紹了交叉驗(yàn)證 ,我們?cè)谀抢镉懻摿巳绾翁幚砟P瓦x擇。我們將充分利用它來(lái)選擇模型設(shè)計(jì)和調(diào)整超參數(shù)。我們首先需要一個(gè)返回ith將數(shù)據(jù)折疊成 K-折疊交叉驗(yàn)證程序。它通過(guò)切出ith段作為驗(yàn)證數(shù)據(jù)并將其余部分作為訓(xùn)練數(shù)據(jù)返回。請(qǐng)注意,這不是處理數(shù)據(jù)的最有效方式,如果我們的數(shù)據(jù)集相當(dāng)大,我們肯定會(huì)做一些更聰明的事情。但是這種增加的復(fù)雜性可能會(huì)不必要地混淆我們的代碼,因此由于問題的簡(jiǎn)單性,我們可以在這里安全地省略它。

def k_fold_data(data, k):
  rets = []
  fold_size = data.train.shape[0] // k
  for j in range(k):
    idx = range(j * fold_size, (j+1) * fold_size)
    rets.append(KaggleHouse(data.batch_size, data.train.drop(index=idx),
                data.train.loc[idx]))
  return rets

我們訓(xùn)練時(shí)返回平均驗(yàn)證錯(cuò)誤K時(shí)間在K- 折疊交叉驗(yàn)證。

def k_fold(trainer, data, k, lr):
  val_loss, models = [], []
  for i, data_fold in enumerate(k_fold_data(data, k)):
    model = d2l.LinearRegression(lr)
    model.board.yscale='log'
    if i != 0: model.board.display = False
    trainer.fit(model, data_fold)
    val_loss.append(float(model.board.data['val_loss'][-1].y))
    models.append(model)
  print(f'average validation log mse = {sum(val_loss)/len(val_loss)}')
  return models

5.7.7. 選型

在這個(gè)例子中,我們選擇了一組未調(diào)整的超參數(shù),并留給讀者來(lái)改進(jìn)模型。找到一個(gè)好的選擇可能需要時(shí)間,具體取決于優(yōu)化了多少變量。有了足夠大的數(shù)據(jù)集和正常的超參數(shù),K-折疊交叉驗(yàn)證往往對(duì)多重測(cè)試具有合理的彈性。然而,如果我們嘗試了不合理的大量選項(xiàng),我們可能會(huì)幸運(yùn)地發(fā)現(xiàn)我們的驗(yàn)證性能不再代表真正的錯(cuò)誤。

trainer = d2l.Trainer(max_epochs=10)
models = k_fold(trainer, data, k=5, lr=0.01)

average validation log mse = 0.17563143908977508

pYYBAGR9NOqAGzn9AAENmDoLcUY324.svg

trainer = d2l.Trainer(max_epochs=10)
models = k_fold(trainer, data, k=5, lr=0.01)

average validation log mse = 0.1256050333380699

poYBAGR9NO6AK2j-AAEOPSc_icw111.svg

trainer = d2l.Trainer(max_epochs=10)
models = k_fold(trainer, data, k=5, lr=0.01)

average validation log mse = 0.1252850264310837

pYYBAGR9NPGADHW5AAENwhrl1ds890.svg

trainer = d2l.Trainer(max_epochs=10)
models = k_fold(trainer, data, k=5, lr=0.01)

average validation log mse = 0.17464343845844268

pYYBAGR9NPOAC3aaAAEFft1axAc124.svg

請(qǐng)注意,有時(shí)一組超參數(shù)的訓(xùn)練錯(cuò)誤數(shù)量可能非常低,即使 K-折疊交叉驗(yàn)證要高得多。這表明我們過(guò)度擬合。在整個(gè)培訓(xùn)過(guò)程中,您需要監(jiān)控這兩個(gè)數(shù)字。較少的過(guò)度擬合可能表明我們的數(shù)據(jù)可以支持更強(qiáng)大的模型。大規(guī)模過(guò)度擬合可能表明我們可以通過(guò)結(jié)合正則化技術(shù)來(lái)獲益。

5.7.8. 在 Kaggle 上提交預(yù)測(cè)

現(xiàn)在我們知道應(yīng)該選擇什么樣的超參數(shù),我們可以計(jì)算所有超參數(shù)對(duì)測(cè)試集的平均預(yù)測(cè) K楷模。將預(yù)測(cè)保存在 csv 文件中將簡(jiǎn)化將結(jié)果上傳到 Kaggle 的過(guò)程。以下代碼將生成一個(gè)名為submission.csv.

preds = [model(torch.tensor(data.val.values, dtype=torch.float32))
     for model in models]
# Taking exponentiation of predictions in the logarithm scale
ensemble_preds = torch.exp(torch.cat(preds, 1)).mean(1)
submission = pd.DataFrame({'Id':data.raw_val.Id,
              'SalePrice':ensemble_preds.detach().numpy()})
submission.to_csv('submission.csv', index=False)

preds = [model(np.array(data.val.values, dtype=np.float32))
     for model in models]
# Taking exponentiation of predictions in the logarithm scale
ensemble_preds = np.exp(np.concatenate(preds, 1)).mean(1)
submission = pd.DataFrame({'Id':data.raw_val.Id,
              'SalePrice':ensemble_preds.asnumpy()})
submission.to_csv('submission.csv', index=False)

preds = [model.apply({'params': trainer.state.params},
     jnp.array(data.val.values, dtype=jnp.float32))
     for model in models]
# Taking exponentiation of predictions in the logarithm scale
ensemble_preds = jnp.exp(jnp.concatenate(preds, 1)).mean(1)
submission = pd.DataFrame({'Id':data.raw_val.Id,
              'SalePrice':np.asarray(ensemble_preds)})
submission.to_csv('submission.csv', index=False)

preds = [model(tf.constant(data.val.values, dtype=tf.float32))
     for model in models]
# Taking exponentiation of predictions in the logarithm scale
ensemble_preds = tf.reduce_mean(tf.exp(tf.concat(preds, 1)), 1)
submission = pd.DataFrame({'Id':data.raw_val.Id,
              'SalePrice':ensemble_preds.numpy()})
submission.to_csv('submission.csv', index=False)

接下來(lái),如圖5.7.3所示,我們可以在 Kaggle 上提交我們的預(yù)測(cè),并查看它們?nèi)绾闻c測(cè)試集上的實(shí)際房?jī)r(jià)(標(biāo)簽)進(jìn)行比較。步驟很簡(jiǎn)單:

登錄Kaggle網(wǎng)站,訪問房?jī)r(jià)預(yù)測(cè)比賽頁(yè)面。

單擊“提交預(yù)測(cè)”或“延遲提交”按鈕(截至撰寫本文時(shí),該按鈕位于右側(cè))。

單擊頁(yè)面底部虛線框中的“上傳提交文件”按鈕,然后選擇您要上傳的預(yù)測(cè)文件。

單擊頁(yè)面底部的“提交”按鈕以查看結(jié)果。

poYBAGR9NPaARtmRAAG280ZJS7k319.png

圖 5.7.3向 Kaggle 提交數(shù)據(jù)

5.7.9. 概括

真實(shí)數(shù)據(jù)通常包含不同數(shù)據(jù)類型的混合,需要進(jìn)行預(yù)處理。將實(shí)值數(shù)據(jù)重新調(diào)整為零均值和單位方差是一個(gè)很好的默認(rèn)值。用平均值替換缺失值也是如此。此外,將分類特征轉(zhuǎn)換為指示特征允許我們將它們視為單熱向量。當(dāng)我們更關(guān)心相對(duì)誤差而不是絕對(duì)誤差時(shí),我們可以用預(yù)測(cè)的對(duì)數(shù)來(lái)衡量差異。要選擇模型并調(diào)整超參數(shù),我們可以使用K折疊交叉驗(yàn)證。

5.7.10。練習(xí)

將你對(duì)本節(jié)的預(yù)測(cè)提交給 Kaggle。你的預(yù)測(cè)有多好?

用平均值替換缺失值總是一個(gè)好主意嗎?提示:你能構(gòu)造一個(gè)值不隨機(jī)缺失的情況嗎?

通過(guò)調(diào)整超參數(shù)來(lái)提高 Kaggle 的分?jǐn)?shù) K- 折疊交叉驗(yàn)證。

通過(guò)改進(jìn)模型(例如,層數(shù)、權(quán)重衰減和丟失)來(lái)提高分?jǐn)?shù)。

如果我們不像本節(jié)所做的那樣對(duì)連續(xù)數(shù)值特征進(jìn)行標(biāo)準(zhǔn)化,會(huì)發(fā)生什么情況?

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • pytorch
    +關(guān)注

    關(guān)注

    2

    文章

    808

    瀏覽量

    13380
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    [原創(chuàng)]房?jī)r(jià)整體上漲推力到底是什么!

    應(yīng)當(dāng)是意料之中的事。   2010年3月的十一屆全國(guó)人大三次會(huì)議,國(guó)家各部委負(fù)責(zé)人在做民生答卷的過(guò)程中難免有些為難,其在下筆時(shí)孰輕孰重甚是難以拿捏,但都能把持有度,胸有成竹地著眼于繪制出漂亮的民生
    發(fā)表于 03-16 13:57

    15年,房?jī)r(jià)變向降了

    一、房降價(jià),因?yàn)閬嗊\(yùn)會(huì)結(jié)束后房?jī)r(jià)就會(huì)降低,專家說(shuō)的。不過(guò)看看其他國(guó)家后,這個(gè)說(shuō)法似乎不是很靠譜兒吧。 二、借助亞運(yùn)商機(jī),狠狠賺一筆美金或歐元,亞運(yùn)會(huì)期間會(huì)有很多外國(guó)人來(lái)到中國(guó)參加4年一度的盛會(huì),估計(jì)
    發(fā)表于 01-23 17:31

    基于onepanel使用kaggle api提交結(jié)果和下載數(shù)據(jù)集的步驟

    onepanel使用kaggle api提交結(jié)果和下載數(shù)據(jù)集
    發(fā)表于 04-22 11:00

    kaggle住宅價(jià)格預(yù)測(cè)

    kaggle房?jī)r(jià)實(shí)戰(zhàn)總結(jié)
    發(fā)表于 08-13 10:08

    kaggle泰坦尼克生存預(yù)測(cè)實(shí)施步驟

    數(shù)據(jù)分析-kaggle泰坦尼克號(hào)生存率分析(入門)個(gè)人總結(jié)
    發(fā)表于 09-05 15:36

    qiuzitao機(jī)器學(xué)習(xí):桑坦德銀行客戶交易預(yù)測(cè)項(xiàng)目

    數(shù)據(jù)挖掘?qū)崙?zhàn)–桑坦德銀行客戶交易預(yù)測(cè)項(xiàng)目一、項(xiàng)目介紹:這是2019年Kaggle的比賽:kaggle官網(wǎng): https://www.kaggle.com/c
    發(fā)表于 07-01 10:14

    Ubuntu 18.04 for Arm運(yùn)行的TensorFlow和PyTorch的Docker映像

    TensorFlow和PyTorch是兩個(gè)最流行的機(jī)器學(xué)習(xí)框架。兩者 Arm 的使用都在增加,從像 Raspberry Pi 這樣的小型系統(tǒng)到用于服務(wù)器和高性能計(jì)算 (HPC) 的大型系統(tǒng)。盡管
    發(fā)表于 10-14 14:25

    通過(guò)Cortex來(lái)非常方便的部署PyTorch模型

    ,Hugging Face 生成的廣泛流行的自然語(yǔ)言處理(NLP)庫(kù),是建立 PyTorch 的。Selene,生物前沿 ML 庫(kù),建在 PyTorch
    發(fā)表于 11-01 15:25

    北京房?jī)r(jià)均降1萬(wàn)!中國(guó)房?jī)r(jià)稱霸全球,北京房?jī)r(jià)均降一萬(wàn)是皮毛!王健林的選擇是對(duì)是錯(cuò)?

    萬(wàn)達(dá)宣布退出房地產(chǎn)驚呆了眾人,也許是王健林看出了房?jī)r(jià)市場(chǎng)的端倪。難道王健林真的是有先見之明,因?yàn)楸本┑?b class='flag-5'>房?jī)r(jià)目前均降一萬(wàn)可是對(duì)于我們來(lái)說(shuō)還是皮毛。據(jù)最新消息了解到中國(guó)的房?jī)r(jià)稱霸全球了,房?jī)r(jià)
    發(fā)表于 09-07 20:20 ?4.4w次閱讀

    如何很容易地將數(shù)據(jù)共享為Kaggle數(shù)據(jù)集

    雖然一個(gè)更大的、機(jī)構(gòu)層面的努力是理想的,但與此同時(shí),我們也可以利用開源,免費(fèi)使用Kaggle 這樣的資源。我認(rèn)為 Kaggle 有可能做 Github 早期科學(xué)重現(xiàn)性方面所做的事情。如果共享數(shù)據(jù)集既簡(jiǎn)單又有趣,有潛在的回報(bào),
    的頭像 發(fā)表于 06-29 15:06 ?5509次閱讀
    如何很容易地將數(shù)據(jù)共享為<b class='flag-5'>Kaggle</b>數(shù)據(jù)集

    這些年來(lái),我們的數(shù)據(jù)科學(xué)究竟發(fā)生了什么變化?

    那么logistic回歸受歡迎的原因是什么?一個(gè)跡象表明,Kaggle的分類問題遠(yuǎn)多于回歸問題,其中一個(gè)代表是這些年來(lái)最受歡迎的泰坦尼克號(hào)生存預(yù)測(cè)競(jìng)賽。這是Kaggle
    的頭像 發(fā)表于 08-13 09:07 ?2887次閱讀

    如何使用改進(jìn)GM模型進(jìn)行房?jī)r(jià)預(yù)測(cè)模型資料說(shuō)明

    本文將以青島西海岸新區(qū)商品房?jī)r(jià)格為例,針對(duì)商品房?jī)r(jià)格呈現(xiàn)動(dòng)態(tài)變化的特點(diǎn),利用改進(jìn)的GM (1, 1)模型與馬爾可夫模型結(jié)合,提出一種基于時(shí)間序列的預(yù)測(cè)模型,對(duì)青島西海岸新區(qū)的商品房?jī)r(jià)
    發(fā)表于 12-19 11:44 ?7次下載
    如何使用改進(jìn)GM模型進(jìn)行<b class='flag-5'>房?jī)r(jià)</b><b class='flag-5'>預(yù)測(cè)</b>模型資料說(shuō)明

    PyTorch教程5.7之在Kaggle預(yù)測(cè)房?jī)r(jià)

    電子發(fā)燒友網(wǎng)站提供《PyTorch教程5.7之在Kaggle預(yù)測(cè)房?jī)r(jià).pdf》資料免費(fèi)下載
    發(fā)表于 06-05 15:20 ?1次下載
    <b class='flag-5'>PyTorch</b>教程<b class='flag-5'>5.7</b>之在<b class='flag-5'>Kaggle</b><b class='flag-5'>上</b><b class='flag-5'>預(yù)測(cè)</b><b class='flag-5'>房?jī)r(jià)</b>

    pytorch怎么pycharm中運(yùn)行

    第一部分:PyTorch和PyCharm的安裝 1.1 安裝PyTorch PyTorch是一個(gè)開源的機(jī)器學(xué)習(xí)庫(kù),用于構(gòu)建和訓(xùn)練神經(jīng)網(wǎng)絡(luò)。要在PyCharm中使用PyTorch,首先需
    的頭像 發(fā)表于 08-01 16:22 ?1615次閱讀

    使用PyTorch英特爾獨(dú)立顯卡訓(xùn)練模型

    PyTorch 2.5重磅更新:性能優(yōu)化+新特性》中的一個(gè)新特性就是:正式支持英特爾獨(dú)立顯卡訓(xùn)練模型!
    的頭像 發(fā)表于 11-01 14:21 ?824次閱讀
    使用<b class='flag-5'>PyTorch</b><b class='flag-5'>在</b>英特爾獨(dú)立顯卡<b class='flag-5'>上</b>訓(xùn)練模型
    主站蜘蛛池模板: 精品videosex性欧美 | 一级在线免费视频 | 六月激情网| 精品乱人伦一区二区三区 | 在线视频午夜 | 午夜爱爱毛片xxxx视频免费看 | 亚洲人的天堂男人爽爽爽 | 国产精品任我爽爆在线播放6080 | 国产精品网址你懂的 | www.狠狠操.com | 亚洲国产精品第一页 | 久久在线精品 | 4虎影院最近地址 | 欧美三级免费观看 | 亚洲综合色吧 | 很黄很暴力 很污秽的小说 很黄很黄叫声床戏免费视频 | 99热国内精品 | 精品国产一区二区三区国产馆 | 午夜国产高清精品一区免费 | 免费网站看黄 | 美女又黄又免费 | 精品国产香港三级 | 午夜影院普通用户体验区 | 亚洲伊人成人网 | 美女拍拍拍爽爽爽爽爽爽 | 国产理论| 中文字幕一区二区三区免费视频 | 日本黄色大片网站 | 亚洲福利视频一区二区三区 | 欧美性黑人十极品hd | 九色综合久久综合欧美97 | 国产人成精品免费视频 | 欧美成人观看免费全部完小说 | 国产色婷婷精品综合在线手机播放 | 亚洲精品在线视频 | 天天爆操 | 69日本xxxxxxxx59 | 欧美+日本+国产+在线观看 | 色精品一区二区三区 | 中文字幕在线播放不卡 | 亚洲精品在线免费观看视频 |