小编mol*_*oli的帖子

在python中使用cvxpy包构建融合套索惩罚

Fused Lasso (Tibshirani 等人,2005)鼓励系数的稀疏性及其差异的稀疏性。

这是损失函数和正则化的公式:【公式截图】(https://cdn1.imggmi.com/uploads/2019/11/17/967043f94a1382c5e14fdd1eb25bad9e-full.png)
第一项是 L2 (mse) 损失,第二项是对系数的 L1 惩罚(Lasso 正则化),最后一项是链接文章中引入的新项。

我如何用cvxpy包来模仿这个 - 具体来说,我如何实现最后一项?

分别有LassoRidge Penalties 的示例代码。我大致了解这些代码是如何工作的,但有一些功能我不知道我应该如何决定使用哪一个。例如,让我们比较 Lasso 和 Ridge 惩罚代码。

# Lasso

import cvxpy as cp
import numpy as np
import matplotlib.pyplot as plt

def loss_fn(X, Y, beta):
    return cp.norm2(cp.matmul(X, beta) - Y)**2

def regularizer(beta):
    return cp.norm1(beta)

def objective_fn(X, Y, beta, lambd):
    return loss_fn(X, Y, beta) + lambd * regularizer(beta)

def mse(X, Y, beta):
    return (1.0 / X.shape[0]) * loss_fn(X, Y, beta).value …
Run Code Online (Sandbox Code Playgroud)

python lasso-regression cvxpy

6
推荐指数
1
解决办法
1306
查看次数

sklearn_extra 安装问题

[在]:

from sklearn_extra.cluster import KMedoids
Run Code Online (Sandbox Code Playgroud)

[出去]:

ModuleNotFoundError: No module named 'sklearn_extra'
Run Code Online (Sandbox Code Playgroud)

然后,我尝试通过安装 sklearn_extra

[在]:

ModuleNotFoundError: No module named 'sklearn_extra'
Run Code Online (Sandbox Code Playgroud)

[出去]:

python -m pip install sklearn_extra
Run Code Online (Sandbox Code Playgroud)

然后,我去了网站的安装部分(https://scikit-learn-extra.readthedocs.io/en/latest/install.html)并按照它说的做了:

Installation
Dependencies
scikit-learn-extra requires,

Python (>=3.5)

scikit-learn (>=0.21), and its dependencies

Cython (>0.28)

User installation
Latest development version can be installed with,

pip install https://github.com/scikit-learn-contrib/scikit-learn-extra/archive/master.zip
Run Code Online (Sandbox Code Playgroud)

[在]:

ERROR: Could not find a version that satisfies the requirement sklearn_extra (from versions: none)
ERROR: No matching distribution found for sklearn_extra
Run Code Online (Sandbox Code Playgroud)

[出去]:

  ERROR: Command errored out …
Run Code Online (Sandbox Code Playgroud)

python installation package scikit-learn sklearn-pandas

6
推荐指数
2
解决办法
6666
查看次数

TypeError:__init__() 在 Python 中为 CatBoost 获得了意外的关键字参数“early_stopping_rounds”

当我尝试运行 CatBoost 算法时出现此错误。它是参数之一,所以我不明白为什么当我注释掉 Early_stopping_rounds 时会发生此错误,我对 cat_features 参数遇到相同的错误


from catboost import CatBoostClassifier

categorical_indexes = np.where(X.dtypes == 'object')[0]
X.drop(["id"], axis = 1, inplace = True)

params = {'loss_function':'Logloss', 
          'eval_metric':'AUC', 
          'verbose': 200, 
          "early_stopping_rounds": 200,
          "cat_features": categorical_indexes,
          'random_seed': 17}
cat = CatBoostClassifier(**params)
cat.fit(X,y)

Run Code Online (Sandbox Code Playgroud)

编辑:
通过 pip 升级 catboost 包现在我收到另一个错误
但是,在我的代码中,我正在过滤分类值,然后将它们分配给 cat_features 参数

TypeError                                 Traceback (most recent call last)
_catboost.pyx in _catboost.get_float_feature()

_catboost.pyx in _catboost._FloatOrNan()

_catboost.pyx in _catboost._FloatOrNanFromString()

TypeError: Cannot convert 'b'Triangle'' to float

During handling of the above exception, another exception occurred:

CatBoostError                             Traceback …
Run Code Online (Sandbox Code Playgroud)

python catboost

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

在 R 中获得 0 而不是精确的结果

我怎样才能得到实际的精确结果而不是四舍五入的结果?

result = ((0.61)**(10435)*(0.39)**(6565))/((0.63)**(5023)*(0.60)**(5412)*(0.37)**(2977)*(0.40)**(3588))
Run Code Online (Sandbox Code Playgroud)

出去:

NaN
Run Code Online (Sandbox Code Playgroud)

因为,分母是0

r computation

3
推荐指数
1
解决办法
100
查看次数