mpu6050读出来的数据全为零是怎么回事

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mpu6050读出来的数据全为零是怎么回事相关的知识,希望对你有一定的参考价值。

参考技术A 看你的mysql当前默认的存储引擎:
mysql> show variables like '?orage_engine?39;;

你要看某个表用了什么引擎(在显示结果里参数engine后面的就表示该表当前用的存储引擎):
mysql> show create table 表名;

使用 OneVsRestClassifier 时全为零

【中文标题】使用 OneVsRestClassifier 时全为零【英文标题】:All zeros when using OneVsRestClassifier 【发布时间】:2016-04-01 08:54:52 【问题描述】:

我正在尝试在我的数据集上使用OneCsRestClassifier。我提取了将训练模型的特征并在其上拟合线性 SVC。模型拟合后,当我尝试对拟合模型的相同数据进行预测时,我得到全零。是因为一些实现问题还是因为我的特征提取不够好。我认为,由于我在预测与我的模型相同的数据,所以我应该得到 100% 的准确率。但相反,我的模型预测全为零。这是我的代码-

#arrFinal contains all the features and the labels. Last 16 columns are labels and features are from 1 to 521. 17th column from the last is not taken
X=np.array(arrFinal[:,1:-17])
X=X.astype(float)
Xtest=np.array(X)

Y=np.array(arrFinal[:,522:]).astype(float)
clf = OneVsRestClassifier(SVC(kernel='linear'))
clf.fit(X, Y)
ans=clf.predict(Xtest) 
print(ans)
print("\n\n\n")

我的 OneVsRestClassifier 实现有问题吗?

【问题讨论】:

尝试参数调整。看看SVC(kernel='linear', C=10000) 是否会给你不同的结果。见***.com/questions/34475245/… 这真的很奇怪。如果 C 足够高,它应该准确地产生给它的东西,除非特征完全相同或真正的相关性为 0。我觉得我们错过了一些东西。你能提供数据吗? pastie.org/private/jeusjl8nfna0vlelzbnbhq 这是有道理的。您的 X 值太小。尝试功能扩展,或将您的 C 增加很多。 优秀。我正在使用 StandardScaler 示例添加答案。它可能对你有用。 【参考方案1】:

查看您的数据后,看起来这些值对于 C 值来说可能太小了。尝试使用sklearn.preprocessing.StandardScaler

X=np.array(arrFinal[:,1:-17])
X=X.astype(float)
scaler = StandardScaler()
X = scaler.fit_transform(X)
Xtest=np.array(X)

Y=np.array(arrFinal[:,522:]).astype(float)
clf = OneVsRestClassifier(SVC(kernel='linear', C=100))
clf.fit(X, Y)
ans=clf.predict(Xtest) 
print(ans)
print("\n\n\n")

从这里,您应该查看使用交叉验证对C 进行的参数调整。使用学习曲线或使用网格搜索。

【讨论】:

以上是关于mpu6050读出来的数据全为零是怎么回事的主要内容,如果未能解决你的问题,请参考以下文章

为啥mpu6050读出来全是0xff

STM32--MPU6050 DMP读角度总结

ARM开发板linux下用I2C读取mpu6050的数据

c_cpp 打开MPU6050的DMP功能,MPU6050能以400K的速率输出姿态数据(FIFO,一共42个字节); DMP有个好处,不需要经过复杂的滤波过程,出来的数据,特别是四位元和YRP数据,

C# combox 设置显示下拉菜单的第一项,如图。还有下拉选项的索引怎么回事,所索引为零是菜单的第一个选项

MPU6050带字符驱动的i2c从设备驱动1