1.留出法
2.python代码演示
点击查看代码
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
import numpy as np
import matplotlib.pyplot as plt
iris = datasets.load_iris()
iris
X, target = iris.data, iris.target
def model_learn(X, target, arg_model):
X = StandardScaler().fit_transform(X)
random_samples = []
train_precision = []
test_precision = []
for i in range(100):
X_train, X_test, y_train, y_test = train_test_split(X, target, test_size=0.2,
random_state=i, shuffle=True, stratify=target)
random_samples.append([len(y_test[y_test == 0]), len(
y_test[y_test == 1]), len(y_test[y_test == 2])])
model = arg_model()
model.fit(X_train, y_train)
y_train_pred = model.predict(X_train)
y_test_pred = model.predict(X_test)
train_correct = 0
for j, y in enumerate(y_train_pred):
if y == y_train[j]:
train_correct += 1
train_precision.append(train_correct/len(y_train))
test_correct = 0
for j, y in enumerate(y_test_pred):
if y == y_test[j]:
test_correct += 1
test_precision.append(test_correct/len(y_test))
print("100次随机划分+分层采样,训练精度是:%.5f" % (np.mean(train_precision)))
print("100次随机划分+分层采样,测试精度是:%.5f" % (np.mean(test_precision)))
return train_precision, test_precision
def plt_precision(train_precision, test_precision):
fig, ax = plt.subplots(1, 2, figsize=(12, 4))
ax[0].plot(train_precision, ".-")
ax[0].set_title("mean of train_precision ={:.5f}".format(
np.mean(train_precision)))
ax[0].set_xlabel("random split number")
ax[0].set_ylabel("train_precision")
ax[0].grid()
ax[1].plot(test_precision, "r.-")
ax[1].set_title("mean of test_precision ={:.5f}".format(
np.mean(test_precision)))
ax[1].set_xlabel("random split number")
ax[1].set_ylabel("test_precision")
ax[1].grid()
用逻辑回归拟合
点击查看代码
from sklearn.linear_model import LogisticRegression
train_precision,test_precision = model_learn(X, target, LogisticRegression)
plt_precision(train_precision, test_precision)
用决策树拟合
点击查看代码
from sklearn.tree import DecisionTreeClassifier
train_precision, test_precision = model_learn(
X, target, DecisionTreeClassifier)
plt_precision(train_precision, test_precision)
KNN拟合
点击查看代码
from sklearn.neighbors import KNeighborsClassifier
train_precision, test_precision = model_learn(
X, target, KNeighborsClassifier)
plt_precision(train_precision, test_precision)
SVM拟合
点击查看代码
from sklearn.svm import SVC
train_precision, test_precision = model_learn(X, target, SVC)
plt_precision(train_precision, test_precision)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)