小编Gid*_*per的帖子

Conda 使用 .local 包

我觉得这是一个基本问题,所以请随时引导我访问任何资源:

对于本地中存在的任何包,我的 conda 环境在 yaml 文件中指定的包版本之前使用 .local。如果可能的话,如何让它忽略 .local?

我正在使用 PyCharm 和 Ubuntu。

如果我可以提供更多信息,请告诉我。

pycharm anaconda conda

10
推荐指数
1
解决办法
9186
查看次数

从 Sklearn 管道中使用特征名称提取特征重要性

我想知道在预处理管道中使用分类器时,如何从 scikit-learn 中的随机森林中提取特征重要性以及特征名称。

这里的问题仅涉及提取特征重要性:如何从 Sklearn pipeline 中提取特征重要性

从我所做的简短研究来看,这在 scikit-learn 中似乎不可能,但我希望我是错的。

我还发现了一个名为 ELI5 的包(https://eli5.readthedocs.io/en/latest/overview.html),它应该可以解决 scikit-learn 的问题,但它并没有解决我的问题,因为名称为我输出的特征是 x1、x2 等,而不是实际的特征名称。

作为一种解决方法,我在管道之外完成了所有预处理,但很想知道如何在管道中进行预处理。

如果我可以提供任何有用的代码,请在评论中告诉我。

python pipeline python-3.x random-forest scikit-learn

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

sklearn 中的多列单热编码和命名列

我有以下代码可以对我拥有的 2 列进行单热编码。

# encode city labels using one-hot encoding scheme
city_ohe = OneHotEncoder(categories='auto')
city_feature_arr = city_ohe.fit_transform(df[['city']]).toarray()
city_feature_labels = city_ohe.categories_
city_features = pd.DataFrame(city_feature_arr, columns=city_feature_labels)

phone_ohe = OneHotEncoder(categories='auto')
phone_feature_arr = phone_ohe.fit_transform(df[['phone']]).toarray()
phone_feature_labels = phone_ohe.categories_
phone_features = pd.DataFrame(phone_feature_arr, columns=phone_feature_labels)
Run Code Online (Sandbox Code Playgroud)

我想知道的是如何在 4 行中执行此操作,同时在输出中正确命名列。也就是说,我可以通过包含两个列名来创建一个正确的单热编码数组,fit_transform但是当我尝试命名结果数据框的列时,它告诉我索引的形状之间存在不匹配:

ValueError: Shape of passed values is (6, 50000), indices imply (3, 50000)
Run Code Online (Sandbox Code Playgroud)

对于背景,电话和城市都有 3 个值。

    city    phone
0   CityA   iPhone
1   CityB Android
2   CityB iPhone
3   CityA   iPhone
4   CityC   Android
Run Code Online (Sandbox Code Playgroud)

python python-3.x pandas scikit-learn one-hot-encoding

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

递归运行时 - 空间复杂度(《破解编码面试》第 44 页)

上页。《破解编码面试》第 44 章有以下算法:

int f(int n) {
    if (n <= 1) {
        return 1;
    }
    return f(n - 1) + f(n - 1);
}
Run Code Online (Sandbox Code Playgroud)

书上说它的时间复杂度为 O(2^n) ,空间复杂度为 O(n) 。我得到了时间复杂度部分,因为创建了 O(2^n) 个节点。我不明白为什么空间复杂度不是这样。书上说因为这是因为在任何给定时间只存在 O(n) 个节点。

怎么可能?当我们处于 f(1) 的底层时,调用堆栈不会包含所有 2^n 次调用吗?我缺少什么?

如果我可以提供更多详细信息,请告诉我。

谢谢,

complexity-theory time-complexity space-complexity

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