python机器学习,使用逻辑回归、KNN、决策树、SVM模型后并评估各模型后,将这些模型评估结果进行可视化分析,选择最佳模型代码
时间: 2024-03-24 21:35:56 浏览: 14
好的,以下是使用Python机器学习库scikit-learn进行逻辑回归、KNN、决策树、SVM模型的训练与评估,并选择最佳模型的代码:
```python
# 导入必要的库
import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.neighbors import KNeighborsClassifier
from sklearn.tree import DecisionTreeClassifier
from sklearn.svm import SVC
from sklearn.metrics import accuracy_score
import matplotlib.pyplot as plt
# 读取数据
data = pd.read_csv('data.csv')
X = data.iloc[:, :-1].values
y = data.iloc[:, -1].values
# 数据集划分
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 逻辑回归模型
lr = LogisticRegression()
lr.fit(X_train, y_train)
lr_pred = lr.predict(X_test)
lr_acc = accuracy_score(y_test, lr_pred)
# KNN模型
knn = KNeighborsClassifier()
knn.fit(X_train, y_train)
knn_pred = knn.predict(X_test)
knn_acc = accuracy_score(y_test, knn_pred)
# 决策树模型
dt = DecisionTreeClassifier()
dt.fit(X_train, y_train)
dt_pred = dt.predict(X_test)
dt_acc = accuracy_score(y_test, dt_pred)
# SVM模型
svm = SVC()
svm.fit(X_train, y_train)
svm_pred = svm.predict(X_test)
svm_acc = accuracy_score(y_test, svm_pred)
# 可视化分析
models = ['Logistic Regression', 'KNN', 'Decision Tree', 'SVM']
accuracies = [lr_acc, knn_acc, dt_acc, svm_acc]
plt.bar(models, accuracies)
plt.ylim([0.6, 1])
plt.title('Model Accuracies')
plt.show()
# 选择最佳模型
best_model = models[np.argmax(accuracies)]
print('Best model:', best_model)
```
在这段代码中,我们首先读取了一个名为"data.csv"的数据集,然后将数据集划分为训练集和测试集。之后,我们分别使用逻辑回归、KNN、决策树、SVM模型进行训练,并对测试集进行预测,计算出各模型的准确率。最后,我们使用matplotlib库将各模型的准确率进行可视化分析并选择最佳模型。
希望这段代码对你有帮助!