# -*- coding: utf-8 -*-
###Task 1 完成评估函数的定义
##输入变量为预测值及真实值,返回值相应评估指标,不允许使用除数据结构外的第三方库
#
# 真正(True Positive , TP):被模型预测为正的正样本。--有病,查出来了
# 假正(False Positive , FP):被模型预测为正的负样本。--没病,说你有病
# 假负(False Negative , FN):被模型预测为负的正样本。--有病,没查出来(*)
# 真负(True Negative , TN):被模型预测为负的负样本。--没病,检查正常
#
# 分类模型的评估:
# 准确率Accuracy = (TP+TN)/(TP+TP+FP+FN)
# 精确率Precision = (TP)/(TP+FP)
# 召回率Recall = (TP)/(TP+FN)
# F1-score = (2*Precision*Recall)/(Precision+Recall)
predicted_value = [1,0,1,1,0,1,0,1,0,1,1,1,1,1] #预测值
true_value = [1,1,0,1,1,1,0,1,0,1,1,1,1,1] #真实值 1为正样本,0为负样本
def getTruePositive(predicted_value,true_value):
tp = 0
for i in range(len(predicted_value)):
if true_value[i] == 1 and predicted_value[i] ==1: #被模型预测为正的正样本。
tp += 1
return tp
def getFalsePositive(predicted_value,true_value):
fp = 0
for i in range(len(predicted_value)):
if true_value[i] == 0 and predicted_value[i] == 1: #被模型预测为正的负样本
fp += 1
return fp
def getFalseNegative(predicted_value,true_value):
fn = 0
for i in range(len(predicted_value)):
if true_value[i] == 1 and predicted_value[i] == 0: #被模型预测为负的正样本。
fn += 1
return fn
def getTrueNegative(predicted_value,true_value):
tn = 0
for i in range(len(predicted_value)):
if true_value[i] == 0 and predicted_value[i] == 0: #被模型预测为负的负样本
tn += 1
return tn
#precision
def metrics_precision(predicted_value,true_value):
# 精确率Precision = (TP)/(TP+FP)
tp = getTruePositive(predicted_value,true_value)
fp = getFalsePositive(predicted_value,true_value)
score = tp / (tp+fp)
return score
#recall
def metrics_recall(predicted_value,true_value):
# 召回率Recall = (TP) / (TP + FN)
tp = getTruePositive(predicted_value,true_value)
fn = getFalseNegative(predicted_value,true_value)
score = tp/(tp+fn)
return score
#f1_score
def distance_f1_score(predicted_value,true_value):
# F1 - score = (2 * Precision * Recall) / (Precision + Recall)
precision = metrics_precision(predicted_value, true_value)
recall = metrics_recall(predicted_value,true_value)
score = 2*precision*recall / (precision+recall)
return score
#测试precision
print(metrics_precision(predicted_value,true_value))
#测试recall
print(metrics_recall(predicted_value,true_value))
#测试f1_score
print(distance_f1_score(predicted_value,true_value))
没有合适的资源?快使用搜索试试~ 我知道了~
机器学习任务汇总.zip
共28个文件
py:15个
csv:7个
xml:4个
需积分: 5 0 下载量 159 浏览量
2024-04-08
20:50:25
上传
评论
收藏 464KB ZIP 举报
温馨提示
机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。它专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径。 随着统计学的发展,统计学习在机器学习中占据了重要地位,支持向量机(SVM)、决策树和随机森林等算法的提出和发展,使得机器学习能够更好地处理分类、回归和聚类等任务。进入21世纪,深度学习成为机器学习领域的重要突破,采用多层神经网络模型,通过大量数据和强大的计算能力来训练模型,在计算机视觉、自然语言处理和语音识别等领域取得了显著的成果。 机器学习算法在各个领域都有广泛的应用,包括医疗保健、金融、零售和电子商务、智能交通、生产制造等。例如,在医疗领域,机器学习技术可以帮助医生识别医疗影像,辅助诊断疾病,预测病情发展趋势,并为患者提供个性化的治疗方案。在金融领域,机器学习模型可以分析金融数据,识别潜在风险,预测股票市场的走势等。 未来,随着传感器技术和计算能力的提升,机器学习将在自动驾驶、智能家居等领域发挥更大的作用。同时,随着物联网技术的普及,机器学习将助力智能家居设备实现更加智能化和个性化的功能。在工业制造领域,机器学习也将实现广泛应用,如智能制造、工艺优化和质量控制等。 总之,机器学习是一门具有广阔应用前景和深远影响的学科,它将持续推动人工智能技术的发展,为人类社会的进步做出重要贡献。
资源推荐
资源详情
资源评论
收起资源包目录
机器学习任务汇总.zip (28个子文件)
content
task1_knn
vehicle.csv 2KB
__init__.py 0B
metrics_ext.py 3KB
KNN_ext.py 900B
sklearn_KNN_ext.py 2KB
task2_linear_regression
__init__.py 0B
metrics_ext.py 850B
poly_data.csv 1KB
linear_data.csv 303B
Linear_Reg_ex1.py 2KB
task4_naive_bayes
vehicle.csv 2KB
__init__.py 0B
GN1.py 2KB
GN.py 3KB
project_1
SalesForecasting.py 2KB
__init__.py 0B
train.csv 3.7MB
test.csv 938KB
.idea
.name 15B
MachineLearning.iml 453B
other.xml 186B
misc.xml 288B
modules.xml 282B
encodings.xml 135B
task3_logistics_regression
vehicle.csv 2KB
__init__.py 0B
metrics_ext.py 368B
Logi.py 3KB
共 28 条
- 1
资源评论
生瓜蛋子
- 粉丝: 3797
- 资源: 4426
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功