测试一个简单的LogisticRegression模型,代码如下:
import numpy as np
import pandas as pd
from sklearn.cross_validation import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.decomposition import PCA
from sklearn.linear_model import LogisticRegression
from sklearn.pipeline import Pipeline
df = pd.read_csv('breast-cancer.data')
df = df.replace(to_replace='?', value=np.nan)
df = df.dropna(how='any') # 去掉所有的含有缺失值的数据
X = df.values[:, 1:-1]
y = df.values[:,-1] # 这部分出错了
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
pi_line = Pipeline([('sc', StandardScaler()),
('pca', PCA(n_components = 2)),
('clf', LogisticRegression(random_state=1)),
])
pi_line.fit(X_train, y_train)
print('res:')
print(pi_line.score(X_test, y_test))
出现错误:ValueError: Unknown label type: ‘unknown’
169 if y_type not in ['binary', 'multiclass', 'multiclass-multioutput',
170 'multilabel-indicator', 'multilabel-sequences']:
--> 171 raise ValueError("Unknown label type: %r" % y_type)
172
173
从错误栈信息来看,应该是标签数据集的类型出错了,那么使用dtype
打印一下数据类型看看(不要使用type
函数,这样会发现都是int类型的),发现这时候的标签数据类型是object
,这样sklearn是无法识别的,所以使用astype('int')
进行强制转化即可:
y = y.astype('int')
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/116706.html