python - 模型作品接受支持向量机 SVM 和线性判别分析
问题描述
我正在使用 PYCharm 环境 python 3.7.4 我已经导入了 CSV 文件来训练模型并预测输出。我有不同的算法如下:
1-高斯 2-逻辑回归 3-KNN 4-决策树 5-SVM 6-线性判别
预测模型工作正常,但支持向量机 SVM 和线性判别分析显示错误(如下所示)。当我在 Jupiter Anaconda 环境中运行它们时,它们运行良好。
图为不同的算法和输出
图书馆:
import os
import csv
import pandas as pd
import matplotlib.pyplot as plt
from PyQt5.QtWidgets import QApplication, QInputDialog, QLineEdit, QFileDialog
from PyQt5.QtGui import QIcon, QPixmap
from PyQt5 import QtCore, QtGui, QtWidgets
from sklearn import model_selection
from sklearn.model_selection import train_test_split
from sklearn.model_selection import cross_val_score
from sklearn.linear_model import LogisticRegression
from sklearn.tree import DecisionTreeClassifier
from sklearn.neighbors import KNeighborsClassifier
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis
from sklearn.naive_bayes import GaussianNB
from sklearn.svm import SVC
from sklearn.preprocessing import LabelEncoder
from sklearn import tree
from sklearn.metrics import accuracy_score
from PIL import Image
import numpy as np
import seaborn as sns
from mpl_toolkits.mplot3d import Axes3D
import seaborn as sb
import warnings
数据类型:int
数据形状:
X.shape (637, 5)
Y.shape (637,)
支持向量机 SVM 错误:
_________________________________错误__________________________________ 回溯(最近一次调用最后一次):,第 1320 行,在 pushButton_8_handler ax1 = sns.distplot(Y_predict)
_________________________________CODE__________________________________ def plot_distribution(inp): plt.figure() ax = sns.distplot(inp) plt.axvline(np.mean(inp), color="k", linestyle="dashed", linewidth=5) , max = plt.ylim() plt.text( inp.mean() + inp.mean() / 10, max_ - max_ / 10, "Mean: {:.2f}".format(inp.mean()), ) 返回plt.figure 打印(np.mean(Y_test))打印(np.mean(Y_predict))
#________________________Dist Predict Vs. Test and Means value_________________________
plt.figure(figsize=(9,5))
o=np.mean(Y_test)
tt=np.mean(Y_train)
ax1 = sns.distplot(Y_predict)
ax2 = sns.distplot(Y_test)
RR1=('Mean:', tt)
RR2=('Mean:', o)
plt.axvline(np.mean(Y_predict), color='b', linestyle='dashed', linewidth=5,label=RR1)
plt.axvline(np.mean(Y_test), color='orange', linestyle='dashed', linewidth=5,label=RR2)
plt.legend()
plt.savefig('SVM.png')
线性判别分析误差:
_______________________ERROR__________________________________
AttributeError: 'float' object has no attribute 'sqrt'
The above exception was the direct cause of the following exception:
Traceback (most recent call last): , line 829, in pushButton_4_handler
Classifier.fit(X_train, Y_train)
_______________________CODE__________________________________
#____________LinearDiscriminantAnalysis____________________
def pushButton_4_handler(self):
from PIL import Image
f = ('Test.csv')
data = pd.read_csv(f)
data = data.dropna()
X = data.drop('DrainStatnumout', axis='columns')
Y = data['DrainStatnumout']
data.Failuer = data.Failuer.astype(int)
print(data)
X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.20)
Classifier = LinearDiscriminantAnalysis()
Classifier.fit(X_train, Y_train)
Y_predict = Classifier.predict(X_test)
解决方案
您应该改进您的问题,以便我们为您提供帮助,添加更多错误信息、您正在使用的库、数据的形状和类型......
推荐阅读
- python - Python OpenCV 掩码显示黑色图像
- python - 如何获取和发送希伯来语?
- java - 使用java流获取字符串占位符列表
- android - 这段代码的含义“suspend fun get(url: String) = withContext(Dispatchers.IO){/*...*/}”
- ruby - 我如何获取每个文本
- 使用 Nokogiri 在同一 div 类下标记
- flutter - 如何修复 FlexibleSpaceBar (SliverAppBar) 中标题的 textSize?
- python-3.x - 用于停止 dag 运行的气流 api
- apache-spark - Spark SQL – 如何使用动态生成的键进行分组或聚合?
- amazon-ec2 - org.apache.flink.runtime.io.network.netty.exception.RemoteTransportException:与任务管理器的连接丢失
- tensorflow - tf.shape(image) 在 Tensorflow 2.0 中返回 None