当前位置:   article > 正文

头歌实训-机器学习(逻辑回归)_机器学习 --- 逻辑回归touge

机器学习 --- 逻辑回归touge

1.逻辑回归简述

  1. #encoding=utf8
  2. import numpy as np
  3. def sigmoid(t):
  4. '''
  5. 完成sigmoid函数计算
  6. :param t: 负无穷到正无穷的实数
  7. :return: 转换后的概率值
  8. :可以考虑使用np.exp()函数
  9. '''
  10. #********** Begin **********#
  11. return 1.0/(1+np.exp(-t))
  12. #********** End **********#

2.逻辑回归算法详解

  1. from sklearn import datasets
  2. from sklearn.datasets import load_iris
  3. import numpy as np
  4. import math
  5. from sklearn.model_selection import train_test_split
  6. from collections import Counter
  7. from sklearn.linear_model import LogisticRegression #导入逻辑回归模型
  8. #########Begin########
  9. # 导入数据
  10. iris = datasets.load_iris()
  11. X= iris['data']
  12. y = iris['target']
  13. X = X[y!=2] # 筛选数据,只选择标签为01
  14. y=y[y!=2]
  15. # 数据划分
  16. X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
  17. # 模型调用
  18. model = LogisticRegression()
  19. # 模型训练
  20. model.fit(X_train, y_train)
  21. # 数据预测
  22. y_pred = model.predict(X_test)
  23. # 结果打印
  24. print("准确度:",model.score(X_test,y_test))
  25. ########End#########

3.sklearn逻辑回归 - 手写数字识别

  1. from sklearn.linear_model import LogisticRegression
  2. def digit_predict(train_image, train_label, test_image):
  3. '''
  4. 实现功能:训练模型并输出预测结果
  5. :param train_sample: 包含多条训练样本的样本集,类型为ndarray,shape为[-1, 8, 8]
  6. :param train_label: 包含多条训练样本标签的标签集,类型为ndarray
  7. :param test_sample: 包含多条测试样本的测试集,类型为ndarry
  8. :return: test_sample对应的预测标签
  9. '''
  10. #************* Begin ************#
  11. # 训练集变形
  12. flat_train_image = train_image.reshape((-1, 64))
  13. # 训练集标准化
  14. train_min = flat_train_image.min()
  15. train_max = flat_train_image.max()
  16. flat_train_image = (flat_train_image-train_min)/(train_max-train_min)
  17. # 测试集变形
  18. flat_test_image = test_image.reshape((-1, 64))
  19. # 测试集标准化
  20. test_min = flat_test_image.min()
  21. test_max = flat_test_image.max()
  22. flat_test_image = (flat_test_image - test_min) / (test_max - test_min)
  23. # 训练--预测
  24. rf = LogisticRegression(C=4.0)
  25. rf.fit(flat_train_image, train_label)
  26. return rf.predict(flat_test_image)
  27. #************* End **************#

4.逻辑回归案例 - 癌细胞精准识别

  1. # -*- coding: utf-8 -*-
  2. import numpy as np
  3. import warnings
  4. warnings.filterwarnings("ignore")
  5. def sigmoid(x):
  6. '''
  7. sigmoid函数
  8. :param x: 转换前的输入
  9. :return: 转换后的概率
  10. '''
  11. return 1/(1+np.exp(-x))
  12. def fit(x,y,eta=1e-3,n_iters=10000):
  13. '''
  14. 训练逻辑回归模型
  15. :param x: 训练集特征数据,类型为ndarray
  16. :param y: 训练集标签,类型为ndarray
  17. :param eta: 学习率,类型为float
  18. :param n_iters: 训练轮数,类型为int
  19. :return: 模型参数,类型为ndarray
  20. '''
  21. # 请在此添加实现代码 #
  22. #********** Begin *********#
  23. theta = np.zeros(x.shape[1])
  24. i_iter = 0
  25. while i_iter < n_iters:
  26. gradient = (sigmoid(x.dot(theta))-y).dot(x)
  27. theta = theta -eta*gradient
  28. i_iter += 1
  29. return theta
  30. #********** End **********#

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/554080
推荐阅读
相关标签
  

闽ICP备14008679号