簡體   English   中英

將數據集中的特征添加到函數中會導致“TypeError: can't convert type 'ndarray' to numerator/denominator”

[英]Adding a feature from a dataset into a function causes “TypeError: can't convert type 'ndarray' to numerator/denominator”

該任務要求您加載糖尿病數據集的一個特征,並為訓練數據編寫自己的最佳擬合線。

我已經編寫了所需的最佳擬合算法行,但是在嘗試向其中添加訓練數據時,我收到此錯誤:

“類型錯誤:無法將類型 'ndarray' 轉換為分子/分母”

import matplotlib.pyplot as plt
import numpy as np
from sklearn import datasets, linear_model
from statistics import mean

diabetes = datasets.load_diabetes()
diabetes_X = diabetes.data[:, np.newaxis, 2]

diabetes_X_train = diabetes_X[:-20] #creating the testing and training data 
diabetes_X_test = diabetes_X[-20:]

diabetes_y_train = diabetes.target[:-20]
diabetes_y_test = diabetes.target[-20:]

## The below code is where the issue is occurring 

xs = np.array(diabetes_X_train, dtype=np.float64)
ys = np.array([diabetes_y_train, dtype=np.float64)

##the algorithm to calculate the line of best  

def best_fit_slope_and_intercept(xs,ys):
    m = (((mean(xs)*mean(ys)) - mean(xs*ys)) /
         ((mean(xs)*mean(xs)) - mean(xs*xs)))

    b = mean(ys) - m*mean(xs)

    return m, b

m, b = best_fit_slope_and_intercept(xs,ys)

print(m,b)

我了解將所需數據轉換為正確格式是問題所在,但經過研究,我無法找到正確的方法。

感謝有關如何根據需要正確連接或轉換訓練數據的所有輸入。

在我看來,處理數據的最佳格式是 DataFrame。 您可以輕松地制作這樣的數據框:

urdataframe={'headername': bestfitted}
urdataframe=pd.DataFrames(data=urdataframe)

然后您可以輕松聯系您的數據幀,例如:

finaldata=pd.concat((traindata,urdataframe),axis=1)

您可以在 DataFrames 上執行所有機器學習功能,並且不太可能出錯

例如,如果你的火車數據是這樣的:年齡性別糖 42 1 120 45 0 250 32 1 98

你的回答是這樣的:回答是的,不是的,是的

所以在通過代碼聯系后,我提到它會像:年齡性別糖回答 42 1 120 是 45 0 250 否 32 1 98 是

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM