Python与机器学习-- 身高与体重数据分析(分类器)I

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Car 情报局
项目应用:身高与体重(性别分类)
Car 情报局
项目应用:逻辑回归
Car 情报局
逻辑回归
原理:找到一条线,但不是去拟合每个数据点,而是把不同类别的样本区分开来 优点:速度快、简单、可解释性好(直接看到各个特征的权重)、易扩展(能容 易地更新模型吸收新的数据)、如果想要一个概率框架,动态调整分类阀值。 缺点:特征处理复杂、需要归一化和较多的特征工程。 应用:两分类问题,常用于数据挖掘,疾病自动诊断,经济预测等领域
朴素贝叶斯:建立模型
from sklearn.naive_bayes import MultinomialNB
# 建立模型
classifier = MultinomialNB()
# 拟合
classifier.fit(X, Y.values.ravel())
# 给出待预测的一个特征
output = classifier.predict(X) output = output.reshape(len(output),1)
Car 情报局
✓ Y.values.ravel():将y的值转化为1维的向量 ✓ output.reshape(len(output),1):reshape()是数组对象中的方法,用于改变数组的
形状。
逻辑回归:四、预测结果的可视化
Car 情报局
plt.scatter(df[[‘Height’]], df[[‘Weight’]], c=output, s=80, edgecolors=‘black’, linewidths=1, cmap=plt.cm.Paired) ✓ plt.cm中cm全称表示colormap,颜色映射地图 ✓ paired表示两个相近色彩输出
逻辑回归:三、数据可视化:观察
import matplotlib.pyplot as plt X = df[['Height', 'Weight']] Y = df[['Gender']]
Car 情报局
plt.figure() plt.scatter(df[['Height']],df[['Weight']],c=Y,s=80,edgecolors='black',
linewidths=1,cmap=plt.cm.Paired)
逻辑回归:三、数据可视化:分类
Car 情报局
xcord11 = []; xcord12 = []; ycord1 = []; xcord21 = []; xcord22 = []; ycord2 = []; n = len(Y)
for i in range(n): if int(Y.values[i]) == 1: xcord11.append(X.values[i,0]); xcord12.append(X.values[i,1]); ycord1.append(Y.values[i]); else: xcord21.append(X.values[i,0]); xcord22.append(X.values[i,1]); ycord2.append(Y.values[i]);
#对性别进行数值化处理
le = preprocessing.LabelEncoder() df['Gender'] = le.fit_transform(df['Gender']) print(df)
Car 情报局
上机时间:15min
Car 情报局
• 数据获取 • 数据预处理 • 问题:Male、female分别对应什么值? • 实验报告1(1)-(2)题
记(符号),就是分类问题。损失函数有一 般用 0-1 损失函数或负对数似然函数等。 在分类问题中,通过学习得到的决策函数 f (x,θ ) 也叫分类器。
三、分类(Classification)
✓ Logistic Regression: 逻辑回归 ✓ Bayes: 朴素贝叶斯 ✓ Decision Tree: 决策树 ✓ SVM: 支持向量机 ✓ KNN:K近邻 ✓ 神经网络 ✓ 深度学习
逻辑回归:四、可视化进阶
Car 情报局
x_min, x_max = df[['Height']].values.min() - 1.0, df[['Height']].values.max() + 1.0
y_min, y_max = df[['Weight']].values.min() - 1.0, df[['Weight']].values.max() + 1.0
朴素贝叶斯:
Car 情报局
当A特征发生 时,特征B某个 值出现的概率
已经B特征值的前提下,某个A特征值 出现的概率
P(A|B)P(B)
P(B|A)
=特征A中某个 P (A) 特征值所占的
比例
特征B中某个特 征值所占的比例
贝叶斯分类法是基于贝叶斯定理的统计学分类方法。它通过预测一个给定的元组属于一个特定类的概率,来进行分 类。朴素贝叶斯分类法假定一个属性值在给定类的影响独立于其他属性的 —— 类条件独立性。 •优点:所需估计的参数少,对于缺失数据不敏感。 •缺点:假设属性之间相互独立,这往往并不成立。(喜欢吃番茄、鸡蛋,却不喜欢吃番茄炒蛋)、需要知道先验概 率、分类决策错误率高。 •应用:新闻分类、病人分类等等
逻辑回归:三、数据可视化:分类
Car 情报局
plt.figure()
plt.scatter(xcord11, xcord12, c='red', s=80, edgecolors='black', linewidths=1, marker='s')
plt.scatter(xcord21, xcord22, c='green', s=80, edgecolors='black', linewidths=1) plt.title(u'性别判定(实际值)') plt.xlabel(u'身高') plt.ylabel(u'体重')
逻辑回归:一、数据读取
Car 情报局
#coding:utf-8
import padas as pd
df= pd.read_csv('hw.csv', delimiter=‘;')
print(df)
逻辑回归:二、数据预处理:标签映射
from sklearn import preprocessing
Car 情报局
上机时间:20min
Car 情报局
• 模型应用 • 数据可视化 • 实验报告5-6题 • 思考:不同方法的区别与
优劣分析
课堂小结
重点: • 机器学习、有监督学习、分类 • 逻辑回归 • 朴素贝叶斯 难点: • 逻辑回归的理解与参数选择、数
据可视化 思考: • 模型评估:模型的优劣分析 作业:实验报告
来计算梯度,数据多的时候。 ✓ saga:线性收敛的随机优化算法的变种。 c:惩罚因子,正则化系数λ的倒数,float类型,默认为1.0。必须是正浮点型数。像SVM一样,越小的数值表示 越强的正则化。用于防止过拟合。
逻辑回归:三、模型训练
# 拟合 classifier.fit(X, Y.values.ravel()) # 给出待预测的一个特征 output = classifier.predict(X) output = output.reshape(len(output),1)
模型训练过程
1、初始化分类器 3、预测predict
2、拟合fit
4、准确性评估
Car 情报局
逻辑回归:三、模型训练
Car 情报局
class sklearn.linear_model.LogisticRegression(penalty='l2', dual=False, tol=0.0001, C=1.0, fit_intercept=True, intercept_scaling=1, class_weight=None, random_state=None, solver='liblinear', max_iter=100, multi_class='ovr', verbose=0, warm_start=False, n_jobs=1)
solver:优化算法选择,可选:newton-cg,lbfgs,liblinear,sag,saga。默认为liblinear,决定了对逻辑回归损 失函数的优化方法: ✓ liblinear:使用了开源的liblinear库实现,内部使用了坐标轴下降法来迭代优化损失函数。 ✓ lbfgs:拟牛顿法的一种,利用损失函数二阶导数矩阵即海森矩阵来迭代优化损失函数。 ✓ newton-cg:也是牛顿法家族的一种,利用损失函数二阶导数矩阵即海森矩阵来迭代优化损失函数。 ✓ sag:即随机平均梯度下降,是梯度下降法的变种,和普通梯度下降法的区别是每次迭代仅仅用一部分的样本
Car 情报局
Car 情报局
THANK YOU!
plt.show()
上机时间:15min
• 数据可视化 • 数据可视化进阶 • 实验报告2-3题
Car 情报局
逻辑回归:三、模型训练
from sklearn import linear_model # 建立回归模型 classifier = linear_model.LogisticRegression(solver='liblinear', C=1) # 拟合 classifier.fit(X, Y.values.ravel()) # 给出待预测的一个特征 output = classifier.predict(X) output = output.reshape(len(output),1)
身高与体重数据分析(分类器)
知识回顾:可视化
常用图形展示
柱状图 直方图 箱形图 散点图 气泡图 饼图 折线图 热力图
Car 情报局
来自百度文库
主要教学内容
分类
有监督学习 分类 逻辑回归 朴素贝叶斯
项目:使用身高、体重数据进行性别分类
数据读取 数据预处理 数据分类(逻辑回归、朴素贝叶斯) 数据可视化
Car 情报局
二、有监督学习
Car 情报局
回归(Regression) y 是连续值(实数或 连续整数),f (x) 的输出也是连续值。这
种类型的问题就是回归问题。对于所有已知
或未知的 (x, y),使得 f (x,θ ) 和 y 尽可能
地一致。损失函数通常定义为平方误差。
分类(Classification) y 是离散的类别标
Car 情报局
一、机器学习的方法
测试数据集 x_test
Car 情报局
x_train 训练数据集
y_train
机器学习 fit( ) 算法
模型
predict( ) 输出结果 y_pred
评估
y_test
报告
二、有监督学习
在监督学习中,每一个例子都是一对由一个输入对 象(通常是一个向量)和一个期望的输出值(也被 称为监督信号)。
step_size = 0.2 x_values, y_values = np.meshgrid(np.arange(x_min,x_max,step_size),
np.arange(y_min,y_max,step_size))
逻辑回归:四、可视化进阶
Car 情报局
mesh_output = classifier.predict(np.c_[x_values.ravel(),y_values.ravel()]) mesh_output = mesh_output.reshape(x_values.shape) #np.c_是按列连接两个矩阵,就是把两矩阵左右相加,要求行数相等 plt.pcolormesh(x_values,y_values,mesh_output,cmap=plt.cm.gray)
上机时间:20min
Car 情报局
• 数据分析与预测 • 数据可视化 • 可视化进阶 • 实验报告4题
朴素贝叶斯:
在统计资料的基础上,依据某些特征,计算各个类别的概率,从而实现分类。
Car 情报局
某个医院早上收了六个门诊病人 现在又来了第七个病人,是一个打喷嚏的建筑工人。请问他患上 感冒的概率有多大?
相关文档
最新文档