变量存储的是地址
栈与堆
栈--变量
堆--对象--一个个内存卡
python为动态类型语言
1.变量无需申明类型
因为对应堆是含有type的
2.对象是含有类型的--对应堆
只支持该类型的操作
变量存储的是地址
栈与堆
栈--变量
堆--对象--一个个内存卡
python为动态类型语言
1.变量无需申明类型
因为对应堆是含有type的
2.对象是含有类型的--对应堆
只支持该类型的操作
对象--内存块,存特定的值
id--type--value(print)
id--地址的概念
a--给内存块标签
ctrl+s保存习惯
f5运行
四个空格--一个tab
# 行连接符 \
遇到问题学会分解问题
画一个圆--消去中间线--加粗--加色
照着思路走,不是照着qiao
加抬笔
.width
蓝黑红黄绿
图形化设计
1.turtle
showturtle--箭头
.write
.forward
.color
.left
.goto
.penup/down
.circle
错误应对与学习方法
1.错误应对
心态--守破离--先做好守,戒骄戒躁
踏踏实实跟着老师走--基本套路
开始批判性思考--我自己的做法
不断的思考与反复的练习--形成自己的套路
2.形成体系---20-30三年,学主要的事情,时间是有限的
不要死磕一个点,过一遍主流的知识点
3.遇到问题
每个问题都是提高的机会
守--哪做的和老师不一样???
学会查百度--不要随便问人
1.缩进组织程序结构
2.区分大小写
3.多行注释
python中方法是对象,函数是对象,一切都是对象
import time
time.time()
totalMinutes//
整数
十进制
二进制0B 0 1
八进制0O 0 1 2 3 4 5 6 7
十六进制0X 0 1 2 3 4 5 6 7 8 9 a b c d e f
自动转型
整数和浮点型
开发环境IDE:解释器的外挂
quit()
2. 终端程序执行:ctrl+c(循环的时候)
# 非监督学习
## k-means (聚类)
> 聚类做在分类之前
# 分类算法:逻辑回归
> 逻辑回归:线性回归的式子作为输入,解决二分类问题, 也可以得出概率值
## 1、应用场景(基础分类问题:二分类)
- 广告点击率
- 是否为垃圾邮件
- 是否患病
- 金融诈骗
- 虚假账号
## 2、广告点击
- 点击
- 没点击
## 3、逻辑回归的输入与线性回归相同
# 模型的保存和加载
from sklearn.externals import joblib
## 过拟合与欠拟合
> 问题:训练集数据训练得很好,误差也不大,在测试集上有问题 原因:学习特征太少,导致区分标准太粗糙,不能准确识别处目标
- 欠拟合:特征太少
- 过拟合:特征过多
特征选择:
- 过滤式:低方差特征
- 嵌入式: 正则化,决策树,神经网络
## 2、线性回归策略
> 预测结果与真实值有误差
> 回归:迭代的算法,知道误差,不断减小误差,
### 损失函数
- 最小二乘法之梯度下降
scikit-learn:
- 优点:封装好,建立模型简单,预测简单
- 缺点:算法的过程,有些参数都在算法API内部优化
## 集成学习方法-随机森林
### 集成学习方法
> 通过建立几个模型组合来解决单一预测问题。工作原理是生成多个分类器/模型,各自独立地学习和做出预测,这些预测最后结合成单预测,因此优于任何一个单分类的做出预测。
### 随机森林
> 在机器学习中,随机森林是一个包含多个决策树的分类器,并且其输出的类别是由个别树输出的类别的众数而定。多个决策树来投票
### 随机森林建立多个决策树的过程
# 分类算法:决策树、随机森林
## 1、认识决策树
### 决策树的划分
## 2、信息的度量和作用
> 信息的单位:比特
### 信息熵
> 信息和消除不确定性xiang'guan
# 模型选择与调优
## 1、交叉验证
> 为了让被评估的模型更加准确可信\
> 将训练集再分为训练集和验证集 将所有数据分成n等分
##2、网格搜索:调参数
K-近邻:超参数
> 通常情况下,很多参数需要手动指定,如k值,这种叫超参数。每组超参数都采用交叉验证来进行评估。最后选出最优参数组合建立模型
# 分类模型的评估
> estimator.score()
- 一般最常见使用的是准确率,即预测结果正确的百分比
## 精确率和召回率
> 预测结果为正例样本中真实为正例的比例(查得准)
> 召回率:真实为正例的样本中预测结果为整理的比例(查的全,对正样本的区分能力)