Python 如果作为参数传递,机器学习模型会发生变化吗?
我正在用python创建一个机器学习算法。 假设我有:Python 如果作为参数传递,机器学习模型会发生变化吗?,python,machine-learning,scikit-learn,Python,Machine Learning,Scikit Learn,我正在用python创建一个机器学习算法。 假设我有: alg = DecisionTreeClassifier(random_state=1) 然后我创建一个函数拟合 def fit(X,Y,alg): alg.fit(X,Y) 我主要打电话给你 fit(X, Y, alg) Y_pred = alg.predict(X_test) 这样行吗?或者alg从未真正改变过外型 我已经读过这个问题,但它令人困惑,因为我不知道我的变量alg是如何更改的 谢谢您的帮助。是的,您传递给该函数的模
alg = DecisionTreeClassifier(random_state=1)
然后我创建一个函数拟合
def fit(X,Y,alg):
alg.fit(X,Y)
我主要打电话给你
fit(X, Y, alg)
Y_pred = alg.predict(X_test)
这样行吗?或者alg从未真正改变过外型
我已经读过这个问题,但它令人困惑,因为我不知道我的变量alg
是如何更改的
谢谢您的帮助。是的,您传递给该函数的模型对象是可变的,并且通过
fit
方法进行了变异。Python的评估策略是,因此更改将反映在调用者中
按共享调用(也称为按对象调用或按
对象共享(objectsharing)是由Barbara首先命名的一种评估策略
Liskov等人于1974年为CLU语言所用。[5]语言使用CLU
例如Python、[6]Iota、[7]Java(用于对象引用)、Ruby、,
JavaScript、Scheme、OCaml、AppleScript和许多其他语言。但是,
“共享呼叫”一词不常用;术语是
不同来源之间不一致。例如,在Java中
社区,他们说Java是按值调用的。共享呼叫
意味着语言中的值基于对象,而不是对象
基本类型,即所有值都是“装箱”的
通过共享调用的语义与通过引用调用的不同之处在于
函数中函数参数的赋值不可见
对于调用方(与引用语义不同)[需要引用],因此
e、 g.如果传递了变量,则无法模拟
调用方作用域中该变量的赋值。但是,
函数可以访问与调用者相同的对象(不允许复制)
如果这些对象是可变的,则在
调用方可以看到该函数,这可能看起来有所不同
来自按值调用语义。系统中可变对象的突变
函数对调用方可见,因为对象未被复制或删除
克隆-它是共享的
是的,您传递给该函数的模型对象是可变的,并通过
fit
方法进行变异。Python的评估策略是,因此更改将反映在调用者中
按共享调用(也称为按对象调用或按
对象共享(objectsharing)是由Barbara首先命名的一种评估策略
Liskov等人于1974年为CLU语言所用。[5]语言使用CLU
例如Python、[6]Iota、[7]Java(用于对象引用)、Ruby、,
JavaScript、Scheme、OCaml、AppleScript和许多其他语言。但是,
“共享呼叫”一词不常用;术语是
不同来源之间不一致。例如,在Java中
社区,他们说Java是按值调用的。共享呼叫
意味着语言中的值基于对象,而不是对象
基本类型,即所有值都是“装箱”的
通过共享调用的语义与通过引用调用的不同之处在于
函数中函数参数的赋值不可见
对于调用方(与引用语义不同)[需要引用],因此
e、 g.如果传递了变量,则无法模拟
调用方作用域中该变量的赋值。但是,
函数可以访问与调用者相同的对象(不允许复制)
如果这些对象是可变的,则在
调用方可以看到该函数,这可能看起来有所不同
来自按值调用语义。系统中可变对象的突变
函数对调用方可见,因为对象未被复制或删除
克隆-它是共享的