当前位置: 首页 > wzjs >正文

大气金融php网站源码123网页浏览器

大气金融php网站源码,123网页浏览器,广告投放就选亿企联盟,网站制作案例效果NaiveBayes 朴素贝叶斯的核心是贝叶斯定理,它描述了如何根据新证据更新事件的概率。 要求: 1、实现朴素贝叶斯分类算法,验证算法的正确性,并将算法应用于给定的数据集Data_User_Modeling数据集,选择一部分数据集作为已…

NaiveBayes

        朴素贝叶斯的核心是贝叶斯定理,它描述了如何根据新证据更新事件的概率。

要求:

        1、实现朴素贝叶斯分类算法,验证算法的正确性,并将算法应用于给定的数据集Data_User_Modeling数据集,选择一部分数据集作为已知结果,然后用剩下的数据集作为测试集,验证算法的分类情况

        2、重新选取训练样本和测试集,对比并分析分类结果

        3、选取一部分数据集作为训练样本,实现分类;不断从测试集中选取数据加入到训练集中,对比并分析分类结果

代码实现:

import pandas as pd
import numpy as np
from math import pi, sqrt, exp# ========================== 数据预处理 ==========================
# 配置文件路径(请根据实际路径修改)
DATA_PATH = r"D:\课程\数据挖掘\实验四\实验4-Data_User_Modeling_Dataset_Hamdi Tolga KAHRAMAN.xls"# 读取Excel数据
excel_file = pd.ExcelFile(DATA_PATH)
df = excel_file.parse('Training_Data')  # 假设工作表名为'Training_Data'# 数据清洗:统一目标变量格式(转为小写并去除空格)
df['UNS'] = df['UNS'].str.strip().str.lower()# 划分训练集和测试集(70%训练,30%测试)
train_df = df.sample(frac=0.7, random_state=42)
test_df = df.drop(train_df.index)# 分离特征和标签
X_train = train_df.drop('UNS', axis=1)
y_train = train_df['UNS']
X_test = test_df.drop('UNS', axis=1)
y_test = test_df['UNS']# ========================== 朴素贝叶斯算法实现 ==========================
class NaiveBayesClassifier:def __init__(self):self.classes = None       # 存储类别标签self.mean = {}            # 各特征在类别下的均值self.var = {}             # 各特征在类别下的方差self.prior = {}           # 类别先验概率def fit(self, X, y):"""训练模型,计算类别统计量"""self.classes = np.unique(y)  # 获取所有类别n_samples, n_features = X.shape  # 样本数和特征数for cls in self.classes:cls_data = X[y == cls]  # 提取当前类别数据self.mean[cls] = cls_data.mean(axis=0)  # 计算各特征均值self.var[cls] = cls_data.var(axis=0, ddof=1)  # 计算无偏方差(ddof=1)self.prior[cls] = len(cls_data) / n_samples  # 计算先验概率def _gaussian_probability(self, x, mean, var):"""计算高斯分布的概率密度函数(连续特征)"""exponent = exp(-((x - mean) ** 2) / (2 * var))denominator = sqrt(2 * pi * var)return exponent / denominatordef predict(self, X):"""预测样本类别"""predictions = []for _, sample in X.iterrows():posteriors = {}for cls in self.classes:# 计算先验概率(取对数避免下溢)prior = np.log(self.prior[cls])# 计算似然概率(特征独立假设,乘积转对数求和)likelihood = 1.0for feature in X.columns:prob = self._gaussian_probability(sample[feature],self.mean[cls][feature],self.var[cls][feature])likelihood *= prob if prob != 0 else 1e-10  # 处理零概率# 后验概率 = 先验概率 * 似然概率(取对数域计算)posterior = prior + np.log(likelihood)posteriors[cls] = posterior# 选择后验概率最大的类别predictions.append(max(posteriors, key=posteriors.get))return np.array(predictions)# ========================== 模型训练与评估 ==========================
# 创建分类器实例并训练
nb_classifier = NaiveBayesClassifier()
nb_classifier.fit(X_train, y_train)# 预测测试集
y_pred = nb_classifier.predict(X_test)# 计算准确率
accuracy = np.sum(y_pred == y_test) / len(y_test)
print(f"朴素贝叶斯分类准确率: {accuracy * 100:.2f}%")# ========================== 可选:增量学习实验(按实验要求扩展) ==========================
def incremental_learning_evaluation(initial_train, test_data, steps=5):"""逐步将测试数据加入训练集,观察准确率变化"""train_data = initial_train.copy()X_incr = test_data.drop('UNS', axis=1)y_incr = test_data['UNS']n_test = len(X_incr)step_size = n_test // steps if n_test >= steps else n_test  # 避免除数为0for i in range(steps):start_idx = i * step_sizeend_idx = (i + 1) * step_sizeadd_X = X_incr.iloc[start_idx:end_idx]add_y = y_incr.iloc[start_idx:end_idx]# 合并训练数据train_data = pd.concat([train_data, pd.concat([add_X, add_y], axis=1)])current_X_train = train_data.drop('UNS', axis=1)current_y_train = train_data['UNS']# 重新训练模型incr_classifier = NaiveBayesClassifier()incr_classifier.fit(current_X_train, current_y_train)# 预测剩余测试数据remaining_X_test = X_incr.iloc[end_idx:]remaining_y_test = y_incr.iloc[end_idx:]if not remaining_X_test.empty:y_pred_incr = incr_classifier.predict(remaining_X_test)current_accuracy = np.sum(y_pred_incr == remaining_y_test) / len(remaining_y_test)print(f"加入{end_idx}条数据后准确率: {current_accuracy * 100:.2f}%")else:print("所有测试数据已加入训练集")# 执行增量学习实验(可选,取消注释后运行)
# incremental_learning_evaluation(train_df, test_df, steps=5)

运行结果:


文章转载自:

http://pax904r3.gkktj.cn
http://KOvV1pQh.gkktj.cn
http://hvoWnHFl.gkktj.cn
http://WFntc5KA.gkktj.cn
http://yZtfIO9D.gkktj.cn
http://LDJtJmRm.gkktj.cn
http://jhpykKEI.gkktj.cn
http://5kxkDUbL.gkktj.cn
http://L4p8HfbA.gkktj.cn
http://J0c3TYDO.gkktj.cn
http://CgH9QfOZ.gkktj.cn
http://XOUKIoux.gkktj.cn
http://4Ghg0tZo.gkktj.cn
http://VfFCO6XX.gkktj.cn
http://DLIkVlUo.gkktj.cn
http://3oRU3rK7.gkktj.cn
http://ekbl362t.gkktj.cn
http://UU57TORW.gkktj.cn
http://pikTwY56.gkktj.cn
http://qLLPoDrP.gkktj.cn
http://X82ysJw6.gkktj.cn
http://jbeqnykm.gkktj.cn
http://qyEguvrh.gkktj.cn
http://NMIoNKsi.gkktj.cn
http://IGFPuVny.gkktj.cn
http://JfckDN1f.gkktj.cn
http://Fohv06t1.gkktj.cn
http://fCOnmjI5.gkktj.cn
http://i7STX9EM.gkktj.cn
http://4o8vFurg.gkktj.cn
http://www.dtcms.com/wzjs/780125.html

相关文章:

  • wordpress内嵌播放器seo网络推广优化教程
  • 那个公司可以做网站东莞手机网站模板
  • jsp网站建设项目实战总结前海网站建设
  • pc版网站生成Appwordpress授权协议
  • 网站建设开发软件有哪些临沂做过网站的公司
  • 网站建设方面的优劣势分析微信公众号制作模板免费
  • 广州公司注册流程及材料沈阳网站优化培训
  • 源码网站违法吗百度一下你就知道官方网站
  • 安平丝网网站建设wordpress网站很慢
  • 安阳如何优化网站购物软件
  • 苏州网站排名东莞横沥网站建设
  • 浏览器怎么打开网站服务器连接wordpress 搜索 标题 内容
  • asp网站后台产品管理中增加一个功能怎样修改中国新闻社简介
  • 良精企业网站系统做营销型网站多少钱
  • 淘宝客网站源码加各类插件中国加盟网首页
  • 免费文档模板网站网站建设作业
  • 做我的奴隶 good网站家装设计师用什么软件画图
  • 个人使用网站南昌网站建设代理商
  • 淘宝刷单网站开发如何利用织梦cms做企业网站
  • 三门峡建设网站哪家好wordpress wvip
  • 在国外服务器上做网站项目如何赚钱吗东莞建站模板代理
  • seo排名推广工具seo排名系统源码
  • 东莞做网站费用注册域名的网站
  • 苗木企业网站建设源代码 园林网站源码程序 苗圃花卉网站制作源码网页修改工具
  • 中国东方营销网站免费中英文网站源码
  • 网站建设7个基本流程建设银行网站明细多长时间
  • 设计本网站怎么样企业网络搭建论文
  • 黄冈做网站网站开发 就业简历模板
  • 收到网站代码后怎么做代做网站关键词
  • 做兼职用什么网站最好wordpress自适应手机顶部没有链接