机器学习 day4-6

逻辑回归

源连接源地址
逻辑回归用于分类问题,主要是在观测数据下,预测当前点属于哪个类别。简单的二分类,输出0,1,例如一个人在选举中是否会投票。

逻辑回归输出是离散的
线性回归输出是连续的

将概率转换为0,1的预测结果的任务叫做逻辑回归或者Sigmode函数。在这里插入图片描述
假设
在这里插入图片描述

在这里插入图片描述
对多个独立样本有:
在这里插入图片描述
对数似然函数为(方便求解):
在这里插入图片描述
最大似然函数,用梯度下降求解:
用梯度下降法最大化函数更新规则:
在这里插入图片描述
只考虑一个样本
在这里插入图片描述
其中:
在这里插入图片描述
所以
在这里插入图片描述
在这里插入图片描述
带入参数更新公式更新参数:
在这里插入图片描述

Sigmoid 函数
取值范围[0,1], 定义域(-∞,+∞)
在这里插入图片描述

预测消费者是否会买车

第一步 数据预处理

在这里插入图片描述

第二步 创建逻辑回归模型

第三步 预测

第四步 评价

用混淆矩阵查看预测与真实之间的关系

第五步 可视化

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib.colors import ListedColormap

dataset = pd.read_csv('./datasets/Social_Network_Ads.csv')
X = dataset.iloc[:,[2,3]].values
y = dataset.iloc[:,4].values
from sklearn.cross_validation import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=0)
from sklearn.preprocessing import  StandardScaler
sc = StandardScaler()
X_train = sc.fit_transform(X_train)
X_test = sc.fit_transform(X_test)
from sklearn.linear_model import LogisticRegression
classifier = LogisticRegression()
classifier.fit(X_train, y_train)
y_pred = classifier.predict(X_test)
from sklearn.metrics import confusion_matrix
cm = confusion_matrix(y_test, y_pred)
x1, x2 = np.meshgrid(np.arange(start=X_train[:,0].min()-1, stop=X_train[:,0].max()+1, step=0.01),
                     np.arange(start=X_train[:,1].min()-1, stop=X_train[:,1].max()+1, step=0.01)
                     )
# contourf 填充等高线 x1,x2对应网格,z网格高度
plt.contourf(x1,x2,classifier.predict(np.array([x1.ravel(),x2.ravel()]).T).reshape(x1.shape), alpha = 0.75,camp=ListedColormap(('red','green')))
#plt.show()
plt.xlim(x1.min(), x2.max())
plt.ylim(x2.min(),x2.max())
for i, j in enumerate(np.unique(y_test)):
    plt.scatter(X_train[y_train==j,0], X_train[y_train==j,1],
                c = ListedColormap(('yellow', 'red'))(i), label =j)
plt.legend()
plt.show()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值