亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

精度分數(numpy.float64'對象不可調用)

精度分數(numpy.float64'對象不可調用)

江戶川亂折騰 2023-10-31 15:02:10
我不知道如何解決這個問題,有人能給我解釋一下嗎?我正在努力通過更改 DecisionTreeClassifier 的參數來在循環中獲得最佳 precision_scoreimport pandas as pdfrom sklearn.tree import DecisionTreeClassifierfrom sklearn.metrics import precision_scorefrom sklearn.model_selection import train_test_split        df = pd.read_csv('songs.csv')        X = df.drop(['song','artist','genre','lyrics'],axis=1)    y = df.artist        X_train,X_test,y_train,y_test = train_test_split(X,y)        scores_data = pd.DataFrame()    for depth in range(1,100):        clf = DecisionTreeClassifier(max_depth=depth,criterion='entropy').fit(X_train,y_train)        train_score = clf.score(X_train,y_train)        test_score = clf.score(X_test,y_test)        preds = clf.predict(X_test)        precision_score = precision_score(y_test,preds,average='micro')                temp_scores = pd.DataFrame({'depth':[depth],                                    'test_score':[test_score],                                     'train_score':[train_score],                                     'precision_score:':[precision_score]})        scores_data = scores_data.append(temp_scores)        這是我的錯誤:---------------------------------------------------------------------------TypeError                                 Traceback (most recent call last)<ipython-input-50-f4a4eaa48ce6> in <module>     17     test_score = clf.score(X_test,y_test)     18     preds = clf.predict(X_test)---> 19     precision_score = precision_score(y_test,preds,average='micro')     20      21     temp_scores = pd.DataFrame({'depth':[depth],**TypeError: 'numpy.float64' object is not callable**這是數據集https://i.stack.imgur.com/QJXSY.png
查看完整描述

1 回答

?
MMTTMM

TA貢獻1869條經驗 獲得超4個贊

循環中的最后一行:


precision_score = precision_score(y_test,preds,average='micro')


temp_scores = pd.DataFrame({'depth':[depth],

                            'test_score':[test_score],

                             'train_score':[train_score],

                             'precision_score:':[precision_score]})

scores_data = scores_data.append(temp_scores)

應改為:


precision_score_ = precision_score(y_test,preds,average='micro')


temp_scores = pd.DataFrame({'depth':[depth],

                            'test_score':[test_score],

                             'train_score':[train_score],

                             'precision_score:':[precision_score_]})

scores_data = scores_data.append(temp_scores)

您定義precision_score為 numpy 數組,然后像函數一樣調用它(下一個周期)。


查看完整回答
反對 回復 2023-10-31
  • 1 回答
  • 0 關注
  • 218 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號