Я тестирую 3 фактора, которые влияют на радиус зерна. Где радиус зерна - это значение Y. И температура мощности, скорость экструзии и D ie Температура - это 3 фактора, которые влияют на Y.
Теперь я пытаюсь найти sl oop для здесь есть некоторые ошибки.
Файл данных:
Grain Radius Power Temperature (X1) Extrusion Rate (X2) Die Temperature (X3)
0 82 150 12 220
1 93 190 12 220
2 114 150 24 220
3 124 150 12 250
4 111 190 24 220
5 129 190 12 250
6 157 150 24 250
7 164 190 24 250
мой код ниже:
data = pd.read_excel('book1.xlsx')
data.columns = ['grain_size','power_temp','extrusion_rate','die_temp']
Y = data['grain_size']
X = data.iloc[:,1:]
X_Centered = X-X.mean()
from numpy.linalg import inv
XX_inv = inv(np.matmul(X_Centered.values.T,X_Centered.values))
XX_inv_X = np.matmul(XX_inv,X_Centered.values.T)
np.matmul(XX_inv_X,Y)
Моя ошибка:
ValueError Traceback (most recent call last)
<ipython-input-57-dc871b000aea> in <module>
2 XX_inv = inv(np.matmul(X_Centered.values.T,X_Centered.values))
3 XX_inv_X = np.matmul(XX_inv,X_Centered.values.T)
----> 4 np.matmul(XX_inv_X,Y)
//anaconda3/lib/python3.7/site-packages/pandas/core/series.py in __array_wrap__(self, result, context)
733 """
734 return self._constructor(result, index=self.index,
--> 735 copy=False).__finalize__(self)
736
737 def __array_prepare__(self, result, context=None):
//anaconda3/lib/python3.7/site-packages/pandas/core/series.py in __init__(self, data, index, dtype, name, copy, fastpath)
247 'Length of passed values is {val}, '
248 'index implies {ind}'
--> 249 .format(val=len(data), ind=len(index)))
250 except TypeError:
251 pass
ValueError: Length of passed values is 3, index implies 8
Я пробовал использовать np.matmul (XX_inv_X.T, Y) для последней строки, но он тоже не работает.
Ожидаемый результат:
array([0.125 , 2.45833333, 1.45 ])