首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么sklearn库对随机生成的数据准确率较低

为什么sklearn库对随机生成的数据准确率较低
EN

Stack Overflow用户
提问于 2020-02-10 02:26:15
回答 1查看 150关注 0票数 2

我已经生成了一个正态分布的样本和3个类来执行分类。我的准确率非常低。我想知道你是否可以给我宝贵的反馈来提高我的LDA分类器的性能。非常感谢您抽出时间来。下面是我的代码:

代码语言:javascript
复制
import pandas as pd
import numpy as np
from random import seed
import random
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis
from sklearn.model_selection import cross_val_score
from sklearn.metrics import f1_score
from sklearn.metrics import accuracy_score
import time

seed(23)
mu, sigma = 0, 0.1 # mean and standard deviation
x1 = np.random.normal(mu, sigma, 1000)
x1=x1.reshape(-1, 1)

seed(1)
y=np.random.randint(0,3,size=(1000,1))
y_cross=np.ravel(y)
start_time1 = time.time()
clf_s=LinearDiscriminantAnalysis()
print('5-fold cross-validation accuracy score:', np.mean(cross_val_score(clf_s,x1, np.ravel(y), cv=5,scoring='accuracy')))
print('5-fold cross-validation F1 score:', np.mean(cross_val_score(clf_s, x1, np.ravel(y), cv=5,scoring='f1_micro')))
end_time1 = time.time()
print ("Computational time in seconds = " +str(end_time1 - start_time1) )

结果:

代码语言:javascript
复制
5-fold cross-validation accuracy score: 0.3280613765344133
5-fold cross-validation F1 score: 0.3280613765344133
Computational time in seconds = 1.4167194366455078
EN

回答 1

Stack Overflow用户

发布于 2020-02-10 02:48:15

.33在3个类别上的准确性意味着纯粹的猜测。我认为这是意料之中的,因为你生成的标签是随机的。算法应该揭示你数据中的一个结构。你准备数据的方式意味着你的算法没有可借鉴的结构。如果您想要更高精度,请正确地生成数据,例如使用sklearn.datasets.make_blobs,并在数据集上训练算法。

证明

代码语言:javascript
复制
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis
from sklearn.model_selection import cross_val_score
from sklearn.datasets import make_blobs

X,y = make_blobs(n_samples=1000, n_features=2, centers=3, random_state=42)

clf=LinearDiscriminantAnalysis()
np.mean(cross_val_score(clf,X,y, cv=5,scoring='accuracy'))
1.0
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60139880

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档