scikit-Learn в R с сеткой - PullRequest
       20

scikit-Learn в R с сеткой

1 голос
/ 15 февраля 2020

Я пытаюсь использовать пакет reticulate в R. Здесь есть хорошее вступление , но я не могу добиться большого прогресса. Допустим, я хочу сделать что-то простое, например построить линейную модель с scikit-learn. (Да, я знаю, R может сделать это превосходно, но сейчас я просто проверяю некоторые вещи ...)


library(reticulate)

# import modules
pd <- import("pandas")
np <- import("numpy")
skl_lr <- import("sklearn.linear_model")

# set up variables and response
x <- mtcars[, -1]
y <- mtcars[, 1]

# convert to python objects
pyx <- r_to_py(x)
pyy <- r_to_py(y)

# create model
skl_lr$LinearRegression$fit(pyx, pyy)

Error in py_call_impl(callable, dots$args, dots$keywords) : 
  TypeError: fit() missing 1 required positional argument: 'y'

Передача аргументов в явном виде не работает.

skl_lr$LinearRegression$fit(X = pyx, y = pyy)

Error in py_call_impl(callable, dots$args, dots$keywords) : 
  TypeError: fit() missing 1 required positional argument: 'self'

Есть идеи?

1 Ответ

2 голосов
/ 15 февраля 2020

Как и в обычном Python / Scikit, вам нужно инициализировать объект модели, прежде чем вы сможете fit его.

lr <- skl_lr$LinearRegression()
lr$fit(pyx, pyy)

lr$coef_
# [1] -0.11144048  0.01333524 -0.02148212  0.78711097 -3.71530393  0.82104075  0.31776281
# [8]  2.52022689  0.65541302 -0.19941925
...