逻辑回归2_线性不可分问题
问题简述:经过两次测试,你要决定是否芯片要被接受或抛弃
目录
1、读取文件
2、可视化数据
3、特征映射(有补充知识点)
4、准备数据集
5、激活函数 (sigmoid)
6、损失函数 、加入了正则化,避免过拟合(对应公式)
7、初始化theta 和lamda
8、梯度下降、加入正则化 (对应公式)
9、设置超参数 (迭代次数、学习率、正则化系数)
10、预测函数
11、准确率
12、拟合函数可视化
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
# 1、读取文件
path = 'ex2data2.txt'
data = pd.read_csv(path, names=['Test 1', 'Test 2', 'Accepted'])
data.head()
Test 1 | Test 2 | Accepted | |
---|---|---|---|
0 | 0.051267 | 0.69956 | 1 |
1 | -0.092742 | 0.68494 | 1 |
2 | -0.213710 | 0.69225 | 1 |
3 | -0.375000 | 0.50219 | 1 |
4 | -0.513250 | 0.46564 | 1 |
# 2、可视化数据
fig,ax = plt.subplots()
ax.scatter(data[data['Accepted']==0]['Test 1'],data[data['Accepted']==0]['Test 2'],c='r',marker='x',label='y=0')
ax.scatter(data[data['Accepted']==1]['Test 1'],data[data['Accepted']==1]['Test 2'],c='b',marker='o',label='y=1')
ax.legend()
ax.set(xlabel='Test1',
ylabel='Test2')
plt.show()
# 3、特征映射
def feature_mapping(x1,x2,power):
data = {
}
for i in np.arange(power