标签: overfitting-underfitting

sklearn Logistic回归中的C参数是什么?

C中的参数是什么意思sklearn.linear_model.LogisticRegression?它如何影响决策边界?高值会使C决策边界非线性吗?如果我们可视化决策边界,逻辑回归的过度拟合会是什么样子?

python machine-learning scikit-learn logistic-regression overfitting-underfitting

19
推荐指数
1
解决办法
4万
查看次数

微调 BERT 情感分析时过度拟合

总的来说,我是机器学习的新手。我目前正在尝试使用 BERT 和 Transformers 进行情感分析的教程https://curiousily.com/posts/sentiment-analysis-with-bert-and-hugging-face-using-pytorch-and-python/

然而,当我训练模型时,模型似乎过度拟合 训练/验证损失和准确性

我不知道如何解决这个问题。我尝试过减少纪元数量、增加批量大小、重新整理我的数据(已排序)并增加验证拆分。到目前为止还没有任何效果。我什至尝试过改变不同的学习率,但我现在使用的是最小的。

下面是我的代码:

PRE_TRAINED_MODEL_NAME = 'TurkuNLP/bert-base-finnish-cased-v1'
tokenizer = BertTokenizer.from_pretrained(PRE_TRAINED_MODEL_NAME)

MAX_LEN = 40

#Make a PyTorch dataset
class FIDataset(Dataset):

  def __init__(self, texts, targets, tokenizer, max_len):

    self.texts = texts

    self.targets = targets

    self.tokenizer = tokenizer

    self.max_len = max_len

  def __len__(self):

    return len(self.texts)

  def __getitem__(self, item):

    text = str(self.texts[item])

    target = self.targets[item]

    encoding = self.tokenizer.encode_plus(

      text,

      add_special_tokens=True,

      max_length=self.max_len,

      return_token_type_ids=False,

      pad_to_max_length=True,

      return_attention_mask=True,

      return_tensors='pt',

    )

    return {

      'text': text,

      'input_ids': encoding['input_ids'].flatten(),

      'attention_mask': encoding['attention_mask'].flatten(),

      'targets': torch.tensor(target, dtype=torch.long)

    }

#split test …
Run Code Online (Sandbox Code Playgroud)

python sentiment-analysis bert-language-model huggingface-transformers overfitting-underfitting

5
推荐指数
1
解决办法
1万
查看次数

PolynomialFeatures 和 LinearRegression 返回不需要的系数

import os
import pandas as pd
import matplotlib.pyplot as plt

from sklearn.pipeline import Pipeline
from sklearn.linear_model import LinearRegression
from sklearn.preprocessing import PolynomialFeatures

csv_path = os.path.join('', 'graph.csv')
graph = pd.read_csv(csv_path)

y = graph['y'].copy()
x = graph.drop('y', axis=1)

pipeline = Pipeline([('pf', PolynomialFeatures(2)), ('clf', LinearRegression())])
pipeline.fit(x, y)

predict = [[16], [20], [30]]

plt.plot(x, y, '.', color='blue')
plt.plot(x, pipeline.predict(x), '-', color='black')
plt.plot(predict, pipeline.predict(predict), 'o', color='red')
plt.show()
Run Code Online (Sandbox Code Playgroud)

我的graph.csv:

x,y
1,1
2,2
3,3
4,4
5,5
6,5.5
7,6
8,6.25
9,6.4
10,6.6
11,6.8
Run Code Online (Sandbox Code Playgroud)

结果产生:

在此处输入图片说明

它显然产生了错误的预测;随着每个 x,y 应该增加。

我错过了什么?我尝试改变学位,但并没有变得更好。例如,当我使用度数 …

python regression machine-learning scikit-learn overfitting-underfitting

3
推荐指数
2
解决办法
166
查看次数

我的验证损失低于训练损失,我应该摆脱正则化吗?

我听很多人谈论一些原因,但他们从未真正回答是否应该修复。我检查了数据集是否存在泄漏,并从 TFRecords 数据集中随机抽取 20% 作为验证集。我开始怀疑我的模型有太多正则化层。我是否应该减少正则化以使验证线位于训练线之上?或者这真的很重要吗?

neural-network tensorflow keras-layer dropout overfitting-underfitting

0
推荐指数
1
解决办法
6402
查看次数