logo
Loading...

DAY 012 將函數 LogisticRegression() 另外命名為 estimator 的原因 - Cupoy

在範例或是網路上查到的資料都會有類似的作法:將函數另外命名>>> from sklearn.line...

ml-100,d012,estimator

DAY 012 將函數 LogisticRegression() 另外命名為 estimator 的原因

2020/09/19 下午 08:24
數值型特徵 - 補缺失值與標準化
蔣淳斌
觀看數:11
回答數:1
收藏數:0
ml-100
d012
estimator

在範例或是網路上查到的資料都會有類似的作法:將函數另外命名


>>> from sklearn.linear_model import LinearRegression

>>> estimator = LinearRegression()

>>> print(LinearRegression())

LinearRegression()

>>> print(estimator)

LinearRegression()

>>> print(type(LinearRegression()))

<class 'sklearn.linear_model._base.LinearRegression'>

>>> print(type(estimator))

<class 'sklearn.linear_model._base.LinearRegression'>


可是當我另外命名aa = int(),卻沒辦法隨意使用:

>>> aa = int()

>>> print(type(aa))

<class 'int'>

>>> print(aa)

0

>>> print(aa(3.97))

---------------------------------------------------------------------------

TypeError                                 Traceback (most recent call last)

<ipython-input-5-f04d6a406e73> in <module>

----> 1 print(aa(3.97))


TypeError: 'int' object is not callable


想請問:

  1. 如粗體部份,為什麼要將函數另外取名字?直接使用不好嗎?
  2. 如紅色部份,為什麼我不能使用另外命名的函數?

回答列表

  • 2020/09/20 上午 00:00
    張維元 (WeiYuan)
    贊同數:1
    不贊同數:0
    留言數:0

    嗨,以下簡單回覆你的問題:


    1. 如粗體部份,為什麼要將函數另外取名字?直接使用不好嗎?


    =>  嗨,我想你這邊誤會了,LinearRegression 是一個 Class,estimator 是利用 LinearRegression 建立的物件。


    2. 如紅色部份,為什麼我不能使用另外命名的函數?


    => 同上,int 是 class 不是 function。


    但是你這樣寫是可以的:


    ```

    aa = int

    aa(3.14)

    ```


    很高興可以在這次問答進行討論,如果還有不懂或是模糊的部分也歡迎持續追問。期待你的互動與鼓勵創造出不同更深度的討論。歡迎加入我自己經營的Line 群組社群,會有不定時舉辦的分享活動,一起來玩玩吧!