Python每日一练(机器学习篇)——第44天:机器学习
2023-09-14 09:05:12 时间
废话少说速度上号刷题卷起来
1. 决策树的生成与训练-信息熵的计算
描述:
其中dataSet.csv的示例数据集如下所示:
实现代码:
# -*- coding: UTF-8 -*-
from math import log
import pandas as pd
dataSet = pd.read_csv('dataSet.csv', header=None)
def calcInfoEnt(dataSet):
# 数据集的样本数量 D
numEntres = len(dataSet)
#code start here
# 样本类别分组
label = dataSet.iloc[:,-1].value_counts()
infoEnt = 0.0
for i in label.index:
# Pi
Pi = label[i]/numEntres
# H(D)
infoEnt = infoEnt - Pi * log(Pi, 2)
return infoEnt
#code end here
#返回值 infoEnt 为数据集的信息熵,表示为 float 类型
if __name__ == '__main__':
print(calcInfoEnt(dataSet))
#输出为当前数据集的信息熵
运行结果:
2. 使用梯度下降对逻辑回归进行训练
描述:
实现代码:
import numpy as np
import pandas as pd
def generate_data():
datasets = pd.read_csv('dataSet.csv', header=None).values.tolist()
labels = pd.read_csv('labels.csv', header=None).values.tolist()
return datasets, labels
def sigmoid(X):
#补全 sigmoid 函数功能
#code start here
s = 1/(1+np.exp(-X))
return s
#code end here
def gradientDescent(dataMatIn, classLabels):
alpha = 0.001 # 学习率,也就是题目描述中的 α
iteration_nums = 100 # 迭代次数,也就是for循环的次数
dataMatrix = np.mat(dataMatIn)
labelMat = np.mat(classLabels).transpose()
m, n = np.shape(dataMatrix) # 返回dataMatrix的大小。m为行数,n为列数。
weight_mat = np.ones((n, 1)) #初始化权重矩阵
#iteration_nums 即为循环的迭代次数
#请在代码完善部分注意矩阵乘法的维度,使用梯度下降矢量化公式
#code start here
for i in range(iteration_nums):
error = sigmoid(dataMatrix*weight_mat)-labelMat
weight_mat=weight_mat-alpha*dataMatrix.transpose()*error
return weight_mat
#code end here
if __name__ == '__main__':
dataMat, labelMat = generate_data()
print(gradientDescent(dataMat, labelMat))
运行结果:
《100天精通Python》专栏推荐白嫖80g Python全栈视频
《100天精通Python从入门到就业》:本专栏专门针对零基础和需要进阶提升的同学所准备的一套完整教学,从0到100的不断进阶深入,后续还有实战项目,轻松应对面试,专栏订阅地址:https://blog.csdn.net/yuan2019035055/category_11466020.html
- 优点:订阅限时9.9付费专栏进入千人全栈VIP答疑群,作者优先解答机会(代码指导、远程服务),群里大佬众多可以抱团取暖(大厂内推机会)!
- 专栏福利:简历指导、招聘内推、每周送实体书、80G全栈学习视频、300本IT电子书:Python、Java、前端、大数据、数据库、算法、爬虫、数据分析、机器学习、面试题库等等
相关文章
- 快速入门Python机器学习(十)
- 快速入门Python机器学习(13)
- 快速入门Python机器学习(17)
- 快速入门Python机器学习(23)
- 快速入门Python机器学习(27)
- 快速入门Python机器学习(28)
- 【python教程入门学习】PyCharm下载和安装教程(包含配置Python解释器)
- 《深入浅出Python机器学习》读书笔记 第一章 概述
- pycharm导入Python_python简单项目
- 哪些软件是python编写出来的_用Python编程需要什么软件?
- python中dtype的使用规范_Python numpy.dtype() 使用实例
- python中替换字符串中字符_Python replace()函数:替换字符串中的某个字符「建议收藏」
- Anaconda:初学Python、入门机器学习的首选
- 机器学习基础:缺失值的处理技巧(附Python代码)
- 【Python深度学习之路】-2.1 机器学习的流程
- 《深入浅出Python机器学习》读书笔记 第二章 基于Python语言的环境配置
- python做微信回复机器人_Python自动化脚本
- Python用逻辑回归、决策树、SVM、XGBoost 算法机器学习预测用户信贷行为数据分析报告
- python-Python与MongoDB数据库-处理MongoDB查询结果
- Linux上的Python之旅(linux自带python)
- Linux下如何快速卸载Python环境(linux如何卸载python)
- 在Linux上学习Python——你的编程之路(linux学python)
- 顶级的20名Python人工智能和机器学习开源项目
- 在Linux上安装Python学习快乐(linux下载python)
- python用Redis与Python实现大数据收集与分析(redis 联合)