赞
踩
- #encoding=utf8
- import numpy as np
-
- def sigmoid(t):
- '''
- 完成sigmoid函数计算
- :param t: 负无穷到正无穷的实数
- :return: 转换后的概率值
- :可以考虑使用np.exp()函数
- '''
- #********** Begin **********#
- return 1.0/(1+np.exp(-t))
- #********** End **********#
- from sklearn import datasets
- from sklearn.datasets import load_iris
- import numpy as np
- import math
- from sklearn.model_selection import train_test_split
- from collections import Counter
- from sklearn.linear_model import LogisticRegression #导入逻辑回归模型
-
- #########Begin########
- # 导入数据
- iris = datasets.load_iris()
- X= iris['data']
- y = iris['target']
- X = X[y!=2] # 筛选数据,只选择标签为0和1
- y=y[y!=2]
- # 数据划分
- X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
-
- # 模型调用
- model = LogisticRegression()
- # 模型训练
- model.fit(X_train, y_train)
- # 数据预测
- y_pred = model.predict(X_test)
- # 结果打印
- print("准确度:",model.score(X_test,y_test))
-
- ########End#########
- from sklearn.linear_model import LogisticRegression
-
- def digit_predict(train_image, train_label, test_image):
- '''
- 实现功能:训练模型并输出预测结果
- :param train_sample: 包含多条训练样本的样本集,类型为ndarray,shape为[-1, 8, 8]
- :param train_label: 包含多条训练样本标签的标签集,类型为ndarray
- :param test_sample: 包含多条测试样本的测试集,类型为ndarry
- :return: test_sample对应的预测标签
- '''
-
- #************* Begin ************#
- # 训练集变形
- flat_train_image = train_image.reshape((-1, 64))
- # 训练集标准化
- train_min = flat_train_image.min()
- train_max = flat_train_image.max()
- flat_train_image = (flat_train_image-train_min)/(train_max-train_min)
- # 测试集变形
- flat_test_image = test_image.reshape((-1, 64))
- # 测试集标准化
- test_min = flat_test_image.min()
- test_max = flat_test_image.max()
- flat_test_image = (flat_test_image - test_min) / (test_max - test_min)
-
- # 训练--预测
- rf = LogisticRegression(C=4.0)
- rf.fit(flat_train_image, train_label)
- return rf.predict(flat_test_image)
-
- #************* End **************#
- # -*- coding: utf-8 -*-
-
- import numpy as np
- import warnings
- warnings.filterwarnings("ignore")
-
- def sigmoid(x):
- '''
- sigmoid函数
- :param x: 转换前的输入
- :return: 转换后的概率
- '''
- return 1/(1+np.exp(-x))
-
-
- def fit(x,y,eta=1e-3,n_iters=10000):
- '''
- 训练逻辑回归模型
- :param x: 训练集特征数据,类型为ndarray
- :param y: 训练集标签,类型为ndarray
- :param eta: 学习率,类型为float
- :param n_iters: 训练轮数,类型为int
- :return: 模型参数,类型为ndarray
- '''
- # 请在此添加实现代码 #
- #********** Begin *********#
- theta = np.zeros(x.shape[1])
- i_iter = 0
- while i_iter < n_iters:
- gradient = (sigmoid(x.dot(theta))-y).dot(x)
- theta = theta -eta*gradient
- i_iter += 1
- return theta
-
- #********** End **********#
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。