栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

AI训练营数据挖掘 Task 1.赛题理解 学习笔记

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

AI训练营数据挖掘 Task 1.赛题理解 学习笔记

本学习笔记为阿里云天池龙珠计划数据挖掘训练营的学习内容,学习链接为:https://tianchi.aliyun.com/specials/activity/promotion/aicampdm?spm=5176.19782939.J_7381678370.2.66a7564bfcB4xK

一、学习知识点概要
  1. 从比赛信息中获取的信息
  2. 读取数据
  3. 关于分类指标评价计算
  4. 关于回归指标平价计算
  5. 关于一些名词的认识

二、学习内容: 1. 从比赛中学到的新知识
a. 脱敏处理:对于一些隐私的信息进行处理,例如手机号处理为186****7392这样子。
b. label encoding即数字形式
c. 匿名特征就是未告知数据列所属的相关性质
d. 评估指标就是评价模型效果与实际效果的差距(具体的评估指标后面写)  
2. 关于数据的读取

1. pandas里面的head函数,是能显示五条数据(默认是五条),可以更改显示的条数
2. 学习到了如何读取到数据。并且学习到了pandas如何读取csv文件

3. 分类指标评价计算 1.accuracy
#accuracy
import numpy as np
from sklearn.metrics import accuracy_score
y_pred=[0,1,3,4]
y_true=[0,1,4,4]
print('ACC:',accuracy_score(y_pred,y_true,normalize=False))
print('ACC:',accuracy_score(y_true,y_pred))

这里用的是accuracy_score函数,这个函数是一个评估方法。分类准确率分数是指所有分类正确所占的的百分比。
sklearn.metrics.accuracy_score(y_true, y_pred, *, normalize=True, sample_weight=None)
如果normalize是False的话会返回y_pred中与y_true一样的元素的数目,默认是True,返回的是正确所占的比率。

2. precision 精确率
  • 前提知识:
    我用T表示预测正确,F表示预测错误
    用P表示正类,用N表示负类
    TP:预测为正,判断正确
    FP:预测为正,判断错误
    FN:预测为负,判断错误
    TN:预测为负,判断正确
## Precision
from sklearn import metrics
y_pred = [1,1,0,0,0]
y_true = [1,0,0,1,0]
print('Precision',metrics.precision_score(y_true, y_pred))
'''解析就是这里没有指明average的取值,也就是说取了默认的binary。1为默认的正类,则TP(被预测为正类的正类值,也就是被预测为了1)有1个,
TP+FP(也就是被预测为1的总个数)有两个,于是算出P=TP/(TP+FP)为0.5'''

这里使用了precision_score函数。而在这个函数里面的参数average默认值是binary,则默认情况下要求y_true, y_pred都只含有0和1(也就是二进制).并且还涉及到另一个参数pos_label,pos_label即指定被视作positive_label的值(也就是被视作正类的值),默认取1.也就是默认1为positive(也就是常说的正类)。

  • 关于average的其他参数,如最常用的macro和weight计算方也是在计算出了P的基础上。
3. recall 召回率

这里和上面一样average都去的是默认的值binary

#Recall
print('Recall:',metrics.recall_score(y_true, y_pred))
'''解析就是这里还去先找TP,也就是1.然后找TP+FN(FN:预测为负,
判断错误,也就是找预测值为0的,但是原值为1)个数有2个,
于是recall=TP/(TP+FN)'''
  1. F1_分数
#F1-score
print('F1-score:',metrics.f1_score(y_true, y_pred))
'''计算方式就是(2*P*R)/(P+R),其中P和R分别就是上面
的精确率和召回率'''
4、回归指标平价计算

(相关信息与解释已写在注释上面了)

# coding=utf-8
import numpy as np
from sklearn import metrics

# MAPE需要自己实现,没有在sklearn库里面,所以要自己写代码来实现
def mape(y_true, y_pred):
    return np.mean(np.abs((y_pred - y_true) / y_true))

y_true = np.array([1.0, 5.0, 4.0, 3.0, 2.0, 5.0, -3.0])
y_pred = np.array([1.0, 4.5, 3.8, 3.2, 3.0, 4.8, -2.2])

# MSE   均方误差
print('MSE:',metrics.mean_squared_error(y_true, y_pred))
# RMSE   均方根误差
print('RMSE:',np.sqrt(metrics.mean_squared_error(y_true, y_pred)))
# MAE   平均绝对误差
print('MAE:',metrics.mean_absolute_error(y_true, y_pred))
# MAPE   平均绝对百分比误差
print('MAPE:',mape(y_true, y_pred))

除了这些还有关于拟合的:

## R2-score    R2 决定系数(拟合优度),越接近1越好
from sklearn.metrics import r2_score
y_true = [3, -0.5, 2, 7]
y_pred = [2.5, 0.0, 2, 8]
print('R2-score:',r2_score(y_true, y_pred))

这个是R2越接近1,表示相关性越高!

三、学习问题与解答
  1. 遇到不认识的函数:我先去自己查找资料,从csdn,官方文档上面查找,然后解决
  2. 感觉自己学习的挺慢的,对于知识的记忆程度未知,想要请教一下什么才叫学到了知识?是我看过了就算吗,因为我认为有的东西可能很少用到,所以应该不用去记忆吧大概?
  3. 想要请教各位大神,就是我之前完全没接触过,只学过课内的python,像这种每天跟着学,边跟着进度走,边学可行吗?就是类似根据学的内容去补没学的。

四、学习思考与总结
  1. 自己才刚刚开始学习,遇到不会的很正常,希望保持心态,查缺补漏
  2. 每天学习时间争取控制在2小时左右,一是保证长时间段的思考,二是给自己一个压力,不要在学习中放松
  3. 边学边做,及时地复习。
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/286058.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号