#python #pandas #machine-learning #scikit-learn #jupyter-notebook
#python #панды #машинное обучение #scikit-learn #jupyter-записная книжка
Вопрос:
В настоящее время я прохожу полный курс машинного обучения, спонсируемый Simplilearn, чтобы лучше понять регрессию, и сталкиваюсь с этой ошибкой:
Ошибка типа: init() получил неожиданный аргумент ключевого слова ‘categorical_features’ из этого кода:
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns
%matplotlib inline
companies = pd.read_csv('Companies_1000.csv')
X = companies.iloc[:, :-1].values
X = companies.iloc[:, :4].values
companies.head()
cmap = sns.cm.rocket_r
sns.heatmap(companies.corr(), cmap = cmap)
from sklearn.preprocessing import LabelEncoder, OneHotEncoder
labelencoder = LabelEncoder()
X[:, 3] = labelencoder.fit_transform(X[:, 3])
onehotencoder = OneHotEncoder(categorical_features = [3])
X = onehotencoder.fit_transform(X).toarray()
print(X)
Это файл csv: https://raw.githubusercontent.com/boosuro/profit_estimation_of_companies/master/1000_Companies.csv
Видео не выдает ту же ошибку, что и я, и я предположил, что оно устарело, однако после сканирования документов sklearn я пришел с пустыми руками для решения. Я использую python 3. Если вы хотите точно проверить информацию и код, которые происходят в видео, вот оно:
https://www.youtube.com/watch?v=9f-GarcDY58
Моя ошибка появляется около отметки 47:25. Спасибо, что проверили это, и спасибо за ваши ответы.
Ответ №1:
Ошибка вызвана следующей строкой
onehotencoder = OneHotEncoder(categorical_features = [3])
Нет параметра с именем «categorical_features» . Вместо этого есть «категории», куда вы можете передать список категорий. По умолчанию для «категорий» установлено значение «авто», что означает, что он будет автоматически определять категории из обучающих данных.
Поэтому вам не нужно ничего передавать в функции OneHotEncoder(), просто оставьте это так.
Измените строку, как показано ниже
onehotencoder = OneHotEncoder()