У меня есть файл данных Excel, включая предикторы и цель / ответ. Я назвал target как «NEAR», и у каждого предиктора есть свое имя. Для изучения выбора функций я использовал этот код, но что-то пошло не так, и я не мог понять влияние каждого из предикторов на мою цель. Код, который я написал ниже. Вся помощь будет оценена.
#importing libraries
from sklearn.datasets import load_boston
import pandas as pd
import numpy as np
import matplotlib
import matplotlib.pyplot as plt
import seaborn as sns
import statsmodels.api as sm
%matplotlib inline
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.feature_selection import RFE
from sklearn.linear_model import RidgeCV, LassoCV, Ridge, Lasso
# reading files
x = pd.read_excel("train.xlsx")
X = x.iloc[:, 0:5]
y = x.iloc[:,5]
#Using Pearson Correlation
plt.figure(figsize=(12,10))
cor = X.corr()
sns.heatmap(cor, annot=True, cmap=plt.cm.Reds)
plt.show()
#Correlation with output variable
cor_target = abs(cor["NEAR"])
#Selecting highly correlated features
relevant_features = cor_target[cor_target > 0.5]
relevant_features
но я получил эту ошибку
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
<ipython-input-28-3468dfbea7e1> in <module>
1 #Correlation with output variable
----> 2 cor_target = abs(cor[y])
3 #Selecting highly correlated features
4 relevant_features = cor_target[cor_target > 0.5]
5 relevant_features
~\Anaconda3\lib\site-packages\pandas\core\frame.py in __getitem__(self, key)
2984 if is_iterator(key):
2985 key = list(key)
-> 2986 indexer = self.loc._convert_to_indexer(key, axis=1, raise_missing=True)
2987
2988 # take() does not accept boolean indexers
~\Anaconda3\lib\site-packages\pandas\core\indexing.py in _convert_to_indexer(self, obj, axis, is_setter, raise_missing)
1283 # When setting, missing keys are not allowed, even with .loc:
1284 kwargs = {"raise_missing": True if is_setter else raise_missing}
-> 1285 return self._get_listlike_indexer(obj, axis, **kwargs)[1]
1286 else:
1287 try:
~\Anaconda3\lib\site-packages\pandas\core\indexing.py in _get_listlike_indexer(self, key, axis, raise_missing)
1090
1091 self._validate_read_indexer(
-> 1092 keyarr, indexer, o._get_axis_number(axis), raise_missing=raise_missing
1093 )
1094 return keyarr, indexer
~\Anaconda3\lib\site-packages\pandas\core\indexing.py in _validate_read_indexer(self, key, indexer, axis, raise_missing)
1175 raise KeyError(
1176 "None of [{key}] are in the [{axis}]".format(
-> 1177 key=key, axis=self.obj._get_axis_name(axis)
1178 )
1179 )
KeyError: "None of [Float64Index([-0.00398046, 0.00205926, -0.00304156, 0.00206342, 0.00797852,\n 0.00619195, 0.00368038, 0.00415858, 0.00454432, 0.00536623,\n ...\n 0.00201033, 0.00184575, 0.00165407, 0.00148248, 0.00131221,\n 0.00103276, 0.00084394, 0.00078347, 0.00069564, 0.00058571],\n dtype='float64', length=209076)] are in the [columns]"