Scikit Learn:逻辑回归错误
Posted
技术标签:
【中文标题】Scikit Learn:逻辑回归错误【英文标题】:Scikit Learn : Logistic Regression Error 【发布时间】:2016-02-21 01:00:14 【问题描述】:我正在尝试使用 scikit learn 对我的数据(6 个分类,1 个整数)运行逻辑回归。我正在关注 scikit 学习文档,但是在尝试拟合我的数据时,我收到以下值错误。有人可以帮忙吗?
#Below are the variables of my data.
train_data.dtypes
OUTPUT
TripType category
VisitNumber category
Weekday category
Upc category
ScanCount int64
DepartmentDescription category
FinelineNumber category
dtype: object
X = train_data.loc[:, 'VisitNumber':'FinelineNumber']
Y = train_data.loc[:, 'TripType':'TripType']
logreg = linear_model.LogisticRegression()
logreg.fit(X, Y)
**ValueError: could not convert string to float: GROCERY DRY GOODS**
【问题讨论】:
这个错误似乎很有启发性——“DepartmentDescription”是一个字符串吗? @polka DeparmentDescription 是一系列字符串,我使用train_data.DepartmentDescription = train_data.DepartmentDescription.astype('category')
将其转换为分类值
【参考方案1】:
Scikit-learn 只能处理数字特征。有关如何处理您的案例的一些想法,请参阅 scikit-learn 文档中的 Encoding Categorical Features。
【讨论】:
【参考方案2】:您不能将类别名称直接用作逻辑回归中的特征。您需要将它们转换为一些编码向量(或虚拟变量)。如果您有 6 个类别,则需要使用 5 个虚拟变量。
您可以查看以下 sklearn 包链接中的编码分类特征部分: http://scikit-learn.org/stable/modules/preprocessing.html
【讨论】:
以上是关于Scikit Learn:逻辑回归错误的主要内容,如果未能解决你的问题,请参考以下文章
Scikit-learn 逻辑回归的性能比 Python 中自己编写的逻辑回归差