我正在尝试通过PyCall在Julia中使用Scikit-learn。
首先,我尝试将虹膜数据读取到Julia数据结构中。
这是Python中的代码:
from sklearn import datasets
from sklearn.naive_bayes import GaussianNB
iris = datasets.load_iris()
X = iris.data
y = iris.targetPyCall文档中提到,Python方法在Julia中的调用方式如下:
my_dna[:find]("ACT")与此相对的是:
my_dna.find("ACT")在Python中。
我在Julia中导入虹膜数据的尝试是:
using PyCall
@pyimport sklearn.datasets as datasets
@pyimport sklearn.naive_bayes as NB
iris = datasets.load_iris()
X = ...?
Y = ...?在iris为Dict{Any,Any}类型的情况下,iris = datasets.load_iris()调用有效。
我不确定这是否正确。我尝试使用iris = datasets[:load_iris],但结果如下:
ERROR: LoadError: MethodError: no method matching getindex(::Module, ::Symbol)更进一步,我如何将iris.data和iris.target读入X和Y
发布于 2017-03-16 09:23:03
正如您所说,Julia告诉您iris是什么类型:
julia v0.5> @pyimport sklearn.datasets as datasets
julia v0.5> @pyimport sklearn.naive_bayes as NB
julia v0.5> iris = datasets.load_iris()
Dict{Any,Any} with 5 entries:
"feature_names" => Any["sepal length (cm)","sepal width (cm)","petal length (…
"target_names" => PyObject array(['setosa', 'versicolor', 'virginica'], …
"data" => [5.1 3.5 1.4 0.2; 4.9 3.0 1.4 0.2; … ; 6.2 3.4 5.4 2.3; 5.…
"target" => [0,0,0,0,0,0,0,0,0,0 … 2,2,2,2,2,2,2,2,2,2]
"DESCR" => "Iris Plants Database\n====================\n\nNotes\n----…它还会告诉你字典中的关键字是什么。因此,现在您只需使用Julia的语法来访问字典中的值(结果片段):
julia v0.5> X = iris["data"]
150×4 Array{Float64,2}:
5.1 3.5 1.4 0.2
4.9 3.0 1.4 0.2
4.7 3.2 1.3 0.2
julia v0.5> Y = iris["target"]
150-element Array{Int64,1}:
0
0请注意,我不知道这个问题的答案。我只是让朱莉娅来指引我该怎么做。
最后,正如@克里斯拉考卡斯建议的那样,已经有了一个封装了scikit-learn的Julia包:https://github.com/cstjean/ScikitLearn.jl
发布于 2020-05-10 16:28:16
由于有一些变化,我想在Davids之外添加of PyCall (当前版本为1.91.4)的当前语法。
python代码
from sklearn import datasets
from sklearn.naive_bayes import GaussianNB
iris = datasets.load_iris()
X = iris.data
y = iris.target变成了朱莉娅:
using PyCall
datasets = pyimport("sklearn.datasets")
GaussianNB = pyimport("sklearn.naive_bayes")
iris = datasets.load_iris()
X = iris["data"]
y = iris["target"]https://stackoverflow.com/questions/42823365
复制相似问题