小编PeC*_*aDe的帖子

使用 Python 从 Wikidata 中提取数据

使用以下代码可以从维基数据中的实体中提取数据:

import requests

API_ENDPOINT = "https://www.wikidata.org/w/api.php"

query = "wikipedia"

params = {
    'action': 'wbsearchentities',
    'format': 'json',
    'language': 'en',
    'search': query
}

r = requests.get(API_ENDPOINT, params = params)

print(r.json()['search'][0])
Run Code Online (Sandbox Code Playgroud)

输出是:

{'repository': '', 'id': 'Q52', 'concepturi': 'http://www.wikidata.org/entity/Q52', 'title': 'Q52', 'pageid': 170, 'url': '//www.wikidata.org/wiki/Q52', 'label': 'Wikipedia', 'description': 'free online encyclopedia that anyone can edit', 'match': {'type': 'label', 'language': 'en', 'text': 'Wikipedia'}}
Run Code Online (Sandbox Code Playgroud)

但是访问concepturi'http ://www.wikidata.org/entity/Q52我看到的信息比json文件中报告的信息更多,特别是我对座右铭文本字段感兴趣。

我如何从维基数据获取更多信息?(这是一个可以显示更多信息的示例,其中查询输出的信息少于维基数据中包含的信息)。

python json wikidata-api

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

在python中通过变量查找样条线结

当以 n_splines=5 拟合线性GAM模型时python,拟合分段线性函数:

import statsmodels.api as sm
from pygam import LinearGAM

data = sm.datasets.get_rdataset('mtcars').data

Y = data['mpg']
X = data.drop("mpg",axis=1)

model = LinearGAM(spline_order=1,n_splines=5).fit(X, Y)
Run Code Online (Sandbox Code Playgroud)

通过使用.coef拟合模型,可以恢复每个样条的系数以进行进一步分析:

model.coef_
Run Code Online (Sandbox Code Playgroud)

然而,我们如何获得每个变量的 5 个样条曲线的截面呢?

例如,对于cyl变量,我们将拟合以下样条线:

在此输入图像描述

这 5 个部分由结决定,因此,在图中我们将看到计算得出的 beta 的变量限制。(即:4-5,5-6,6-7,7-8)。

我在文档中找到的唯一方法model.edge_knots

长度为 2 的浮点数的类似数组。样条函数的最小和最大域。

在此示例中,它对应于cyl[4,8]。

python spline gam coefficients

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

R 中 Ranger 的 SHAP 重要性

存在二元分类问题:如何获得 Ranger 模型变量的 Shap 贡献?

样本数据:

library(ranger)
library(tidyverse)

# Binary Dataset
df <- iris
df$Target <- if_else(df$Species == "setosa",1,0)
df$Species <- NULL

# Train Ranger Model
model <- ranger(
  x = df %>%  select(-Target),
  y = df %>%  pull(Target))
Run Code Online (Sandbox Code Playgroud)

我尝试过几个库(DALEX、、、)shapr,但没有得到任何解决方案。fastshapshapper

SHAPforxgboost我希望得到像xgboost 这样的结果:

  • 其输出shap.values是变量的形状贡献
  • shap.plot.summary

r ensemble-learning iris-dataset r-ranger shap

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

在R的开头用一个点声明变量

问题的症结与标题相同,

有人知道或者可以提供有关R中".variables"的信息吗?

.variable<-1
class(.variable) 
[1] 1
[1] "numeric"
Run Code Online (Sandbox Code Playgroud)

据我所知,它就像一个隐藏的变量,因为它不会出现在R studio的全球环境中.

所以,重点是定义:

  • 这是什么?
  • 什么用于?
  • 一些例子

r

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

pyspark foreach 带参数

阅读pyspark文档我知道 foreach 是这样完成的:

def f(x): print(x)
sc.parallelize([1, 2, 3, 4, 5]).foreach(f)
Run Code Online (Sandbox Code Playgroud)

但是,如果我使用带有多个参数的函数怎么办?

一个例子:

def f(x,arg1,arg2,arg3): 
    print(x*arg1+arg2+arg3)
Run Code Online (Sandbox Code Playgroud)

关键是使用类似于以下语法的东西:

sc.parallelize([1, 2, 3, 4, 5]).foreach(f(arg1=11,arg2=21,arg3=31))
Run Code Online (Sandbox Code Playgroud)

python foreach pyspark

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

在python中使用字典翻译数据帧

有以下pandas Dataframe样本:

df = pd.DataFrame([[1,2],[1,2],[3,5]])

df
    0   1
0   1   2
1   1   2
2   3   5
Run Code Online (Sandbox Code Playgroud)

以下字典:

d = {1:'foo',2:'bar',3:'tar',4:'tartar',5:'foofoo'}
Run Code Online (Sandbox Code Playgroud)

我想通过使用字典来"翻译"数据框d.输出如下:

result = pd.DataFrame([['foo','bar'],['foo','bar'],['tar','fofo']])

result
    0   1
0   foo bar
1   foo bar
2   tar fofo
Run Code Online (Sandbox Code Playgroud)

我想避免使用for循环.我试图找到的解决方案是地图或类似物...

python dictionary pandas

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