我通过 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
。
好吧matplotlib afficionados,我们知道如何绘制甜甜圈图表,但什么比甜甜圈图表更好?双圆圈图.具体来说:我们有一组元素属于第一类分类的不相交类别和子类别.圆环图应该具有外环中的类别的切片和内环中的子类别的切片,显然与外切片对齐.
有没有提供此功能的库或我们是否需要在此处进行此操作?
在开始使用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) 我用 升级了我过时的软件包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) 我正在研究一个使用ColumnTransformer
和LabelEncoder
预处理众所周知的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) 我已根据这些说明安装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。其他可用选项是CPU
和GPU
。请注意,在 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) 在学习完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) 在Java中,包含适当对象的所有变量实际上都是引用(即指针).因此,使用这些对象作为参数的方法调用始终是"通过引用".调用修改对象状态的方法也会影响原始对象(在调用者端).
C++是不同的:这里的参数可以通过值传递或通过引用传递.在通过值传递的对象上调用mutator方法会使原始对象不受影响.(我想按值调用会创建对象的本地副本).
所以我对此的第一反应 - 从Java到C++ - 是:当使用对象作为参数时,总是使用指针.这给了我从Java期望的行为.
但是,如果一个人不需要修改方法体中的对象,也可以使用"按值调用".是否有人想要这样做?
假设我使用numpy数组(例如numpy.ndarray
)存储大的稀疏矩阵(即,大多数条目为0):零条目实际占用内存吗?numpy是否支持稀疏数组,如果是,则使用哪种存储格式?
python numpy sparse-matrix multidimensional-array python-3.x
我在思考是否应该使用继承或委托来实现一种包装类.我的问题是这样的:假设我有一个名为的类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 ×9
c++ ×2
macos ×2
oop ×2
python-3.x ×2
scikit-learn ×2
apache-spark ×1
arm ×1
charts ×1
data-science ×1
delegation ×1
homebrew ×1
inheritance ×1
java ×1
matplotlib ×1
numpy ×1
orm ×1
pip ×1
plot ×1
pyspark ×1
sqlalchemy ×1
sqlmodel ×1
tensorflow ×1
xgboost ×1