机器学习_逻辑回归

使用Sklearn实现逻辑回归

导入模块

import numpy as np
import matplotlib.pyplot as plt
from sklearn import linear_model

加载数据的函数

def loaddata(txt_path):
	data = np.loadtxt(txt_path,delimiter=',')
	n = data.shape[1]-1  # 特征数
	X = data[:, 0:n]
	y = data[:, -1].reshape(-1,1)
	return X,y

X,y = loaddata('data/data1.txt')

使用逻辑回归模型

常用参数含义:

  • C 正则化参数 λ \lambda λ的导数。C越大,惩罚越小,易过拟合,泛化能力差;C越小,惩罚越大,不易过拟合,泛化能力好 C = 1 λ C=\frac{1}{\lambda} C=λ1
  • multi_class:ovr,multinomial
  • max_iter:迭代次数
model1 = linear_mode.LogistcRegression(C=50,max_iter=2000)
model.fit(X,y)

print(model1.coef_)
print(model2.intercept_)
y_hat = model2.predict(X)
print('准确度',accuracy_score(y,y_hat)

画图

def plotDescisionBoundary(X,y,theta):
	cm_dark = mp1.colors.ListedColormap(['g','r'])
	plt.xlabel('Exam 1 score')
	plt.ylabel('Exam 2 score')
	plt.scatter(X[:,0],X[:,1],c=np.array(y).squeeze(),cmap=cm_dark,s=30)
	#化分类决策面 theta0+theta1*x1+theta2*x2=0
	# x1=np.arange(20,110,0.1)
	x1 = np.arange(min(X[:, 0]),max(X[:,0]),0.1)
	x2 = -(theta[1]*x1+theta[0])/theta[2]
	plt.plot(x1,x2)
	plt.show()

theta = np.arange(model1.intercept_,model1.coef_)
plotDescisionBoundary(X,y,theta)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值