小编cls*_*udt的帖子

xgboost 有 feature_importances_ 吗?

我通过 scikit-learn 风格的 Python 接口调用 xgboost:

model = xgboost.XGBRegressor() 
%time model.fit(trainX, trainY)
testY = model.predict(testX)
Run Code Online (Sandbox Code Playgroud)

一些 sklearn 模型通过 attribute 告诉您它们为特征分配的重要性feature_importances。这似乎不存在XGBRegressor

model.feature_importances_
AttributeError   Traceback (most recent call last)
<ipython-input-36-fbaa36f9f167> in <module>()
----> 1 model.feature_importances_

AttributeError: 'XGBRegressor' object has no attribute 'feature_importances_'
Run Code Online (Sandbox Code Playgroud)

奇怪的是:对于我的合作者来说,该属性feature_importances_就在那里!可能是什么问题?

这些是我拥有的版本:

In [2]: xgboost.__version__
Out[2]: '0.6'

In [4]: sklearn.__version__
Out[4]: '0.18.1'
Run Code Online (Sandbox Code Playgroud)

...以及来自 github 的 xgboost C++ 库,提交ef8d92fc52c674c44b824949388e72175f72e4d1

c++ python machine-learning scikit-learn xgboost

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

在matplotlib的双圆环图

好吧matplotlib afficionados,我们知道如何绘制甜甜圈图表,但什么比甜甜圈图表更好?双圆圈图.具体来说:我们有一组元素属于第一类分类的不相交类别和子类别.圆环图应该具有外环中的类别的切片和内环中的子类别的切片,显然与外切片对齐.

有没有提供此功能的库或我们是否需要在此处进行此操作?

在此输入图像描述

python charts plot matplotlib

5
推荐指数
2
解决办法
5315
查看次数

pyspark.ml 管道:基本预处理任务是否需要自定义转换器?

在开始使用pyspark.ml管道 API 时,我发现自己为典型的预处理任务编写了自定义转换器,以便在管道中使用它们。例子:

from pyspark.ml import Pipeline, Transformer


class CustomTransformer(Transformer):
    # lazy workaround - a transformer needs to have these attributes
    _defaultParamMap = dict()
    _paramMap = dict()
    _params = dict()

class ColumnSelector(CustomTransformer):
    """Transformer that selects a subset of columns
    - to be used as pipeline stage"""

    def __init__(self, columns):
        self.columns = columns


    def _transform(self, data):
        return data.select(self.columns)


class ColumnRenamer(CustomTransformer):
    """Transformer renames one column"""


    def __init__(self, rename):
        self.rename = rename

    def _transform(self, data):
        (colNameBefore, colNameAfter) = self.rename
        return data.withColumnRenamed(colNameBefore, …
Run Code Online (Sandbox Code Playgroud)

python machine-learning apache-spark pyspark data-science

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

pip3 在 hombrew 升级后消失了

我用 升级了我过时的软件包brew upgrade,但现在我发现pip3我以前使用的命令(Python 3 的 pip)不见了。我的 Python 3.6 安装仍然存在:

cls@clsmba > python3
Python 3.6.5 (default, Mar 30 2018, 06:42:10) 
[GCC 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.39.2)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 
Run Code Online (Sandbox Code Playgroud)

>pip 指向 Python 2.7 的 pip:

cls@clsmba ~> pip --version
pip 9.0.3 from /usr/local/lib/python2.7/site-packages (python 2.7)

cls@clsmba ~> pip2 --version
pip 9.0.3 from /usr/local/lib/python2.7/site-packages (python 2.7)
Run Code Online (Sandbox Code Playgroud)

pip3.5 似乎是旧版 Python 3 的遗留物:

cls@clsmba ~> pip3.5
Failed to execute process …
Run Code Online (Sandbox Code Playgroud)

python macos homebrew pip

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

sklearn.compose.ColumnTransformer:fit_transform()接受2个位置参数,但给出了3个

我正在研究一个使用ColumnTransformerLabelEncoder预处理众所周知的Titanic数据集的示例X

    Age Embarked    Fare    Sex
0   22.0    S      7.2500   male
1   38.0    C      71.2833  female
2   26.0    S      7.9250   female
3   35.0    S      53.1000  female
4   35.0    S      8.0500   male
Run Code Online (Sandbox Code Playgroud)

像这样调用变压器:

from sklearn.compose import ColumnTransformer
from sklearn.preprocessing import LabelEncoder
ColumnTransformer(
    transformers=[
        ("label-encode categorical", LabelEncoder(), ["Sex", "Embarked"])
    ]
).fit(X).transform(X)
Run Code Online (Sandbox Code Playgroud)

结果是:

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-54-fd5a05b7e47e> in <module>
      4         ("label-encode categorical", LabelEncoder(), ["Sex", "Embarked"])
      5     ]
----> 6 ).fit(X).transform(X)

~/anaconda3/lib/python3.7/site-packages/sklearn/compose/_column_transformer.py in fit(self, X, …
Run Code Online (Sandbox Code Playgroud)

python machine-learning scikit-learn

5
推荐指数
2
解决办法
452
查看次数

让 TensorFlow 在 ARM Mac 上使用 GPU

我已根据这些说明安装TensorFlow在 M1 ( ARM ) Mac 上。一切正常。

但是,模型训练正在CPU. 如何将培训切换到GPU?

In: tensorflow.config.list_physical_devices()
Out: [PhysicalDevice(name='/physical_device:CPU:0', device_type='CPU')]
Run Code Online (Sandbox Code Playgroud)

Apple 的 TensorFlow 发行版的文档中,我发现以下有点令人困惑的段落

无需对现有 TensorFlow 脚本进行任何更改即可使用 ML Compute 作为 TensorFlow 和 TensorFlow Addons 的后端。有一个mlcompute.set_mlc_device(device_name='any')用于 ML Compute 设备选择的可选API。device_name 的默认值为“any”,这意味着 ML Compute 将选择您系统上的最佳可用设备,包括多 GPU 配置上的多个 GPU。其他可用选项是CPUGPU。请注意,在 Eager 模式下,ML Compute 将使用 CPU。例如,选择 CPU 设备,您可以执行以下操作:

# Import mlcompute module to use the optional set_mlc_device API for device selection with ML Compute. …
Run Code Online (Sandbox Code Playgroud)

python macos arm deep-learning tensorflow

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

与 sqlmodel 的一对一关系

在学习完SQLModel教程后,我不记得看到过任何有关如何使用Relationship属性实现 1:1 关系的内容。

我找到了SQLAlchemy 的文档,但目前还不清楚这如何应用于 SQLModel。

代码示例:如何强制 User 和 ICloudAccount 具有 1:1 关系?

class User(SQLModel, table=True):
    id: Optional[int] = Field(default=None, primary_key=True)
    name: str
    icloud_account_id: Optional[int] = Field(default=None, foreign_key="icloudaccount.id")
    icloud_account: Optional["ICloudAccount"] = Relationship(back_populates="users")


class ICloudAccount(SQLModel, table=True):
    id: Optional[int] = Field(default=None, primary_key=True)
    user_name: str
    users: List[User] = Relationship(back_populates="icloud_account")
Run Code Online (Sandbox Code Playgroud)

python orm sqlalchemy sqlmodel

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

C++:按值传递对象的原因

在Java中,包含适当对象的所有变量实际上都是引用(即指针).因此,使用这些对象作为参数的方法调用始终是"通过引用".调用修改对象状态的方法也会影响原始对象(在调用者端).

C++是不同的:这里的参数可以通过值传递或通过引用传递.在通过值传递的对象上调用mutator方法会使原始对象不受影响.(我想按值调用会创建对象的本地副本).

所以我对此的第一反应 - 从Java到C++ - 是:当使用对象作为参数时,总是使用指针.这给了我从Java期望的行为.

但是,如果一个人不需要修改方法体中的对象,也可以使用"按值调用".是否有人想要这样做?

c++ java oop

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

numpy.array中的零条目占用内存吗?

假设我使用numpy数组(例如numpy.ndarray)存储大的稀疏矩阵(即,大多数条目为0):零条目实际占用内存吗?numpy是否支持稀疏数组,如果是,则使用哪种存储格式

python numpy sparse-matrix multidimensional-array python-3.x

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

Python:我应该在这里使用委托还是继承?

我在思考是否应该使用继承或委托来实现一种包装类.我的问题是这样的:假设我有一个名为的类Python.

class Python:

    def __init__(self):
        ...

    def snake(self):
        """ Make python snake through the forest"""
        ...

    def sleep(self):
        """ Let python sleep """
        ...
Run Code Online (Sandbox Code Playgroud)

......还有更多的行为.现在我有一些代码需要一个Anaconda,它几乎像一个Python,但略有不同:一些成员的名称和参数略有不同,其他成员添加新的功能.我真的想重用代码Python.因此我可以通过继承来做到这一点:

class Anaconda(Python):

    def __init__(self):
        Python.__init__(self)

    def wriggle(self):
        """Different name, same thing"""
        Python.snake(self)

    def devourCrocodile(self, croc):
        """ Python can't do this"""
        ...
Run Code Online (Sandbox Code Playgroud)

我当然也可以打电话Anaconda().sleep().但问题是:PythonFactory我需要使用一个.

class PythonFactory:

    def makeSpecialPython(self):
        """ Do a lot of complicated work to produce a special python"""
        …
        return python
Run Code Online (Sandbox Code Playgroud)

我希望它能成为一个Python …

python oop inheritance delegation python-3.x

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