回归中的overfittingunderfitting,正则化回归python
2015-07-26 10:37
781 查看
Adressing overfitting:
减少特征模型选择, 自动选择变量
但是特征信息的舍弃会导致信息的丢失
regularization:
保留所有特征, 但是减少参数theta的值在很多特征时有良好的效果
cost function
对参数惩罚, 保证参数较小, 防止过拟合1. fitting well
2. theta is small
这里的lambda参数设置过大会underfitting
正则化回归
正则化回归中的只惩罚非常数项所以, 将梯度下降分开:
Normal equation
正则化通过在对角加上一个数值, 可是解决不可逆的问题.逻辑回归正则化
无正则化的逻辑回归的cost function正则化的cost
梯度下降的式子与线性的相同, 不同的是h(theta)函数不同
其损失函数为:
整个迭代过程为:
__author__ = 'Chen' from numpy import * #calculate the cost def costFunction(X,Y,theta): mse = (theta * X.T - Y.T) return mse *mse.T #linearReresion def linearRegresion(x,y,type=True,alpha=0.01,lambdas=0.01): xrow = shape(x)[0] xcol = shape(x)[1] x = matrix(x) Y = matrix(y) # fill ones xone = ones((xrow,1)) X = hstack((xone,x)) X = matrix(X) # normal equiation if type == True: #add regularization for i in range(1,xrow): X[i,i] += lambdas * 1 theta = (X.T*X).I*X.T*Y return theta else: # gradiant theta = matrix(random.random(xcol+1)) # iterations for iteration in range(1,10000): # return the cost print costFunction(X,Y,theta) sums = 0 #gradient method # adding a regularzation need to add theta(i-1) temptheta = theta temptheta[0,0] = 0 for i in range(1, xrow): sums += (theta*X[i,:].T-Y[i,:])*X[i,:] theta -= alpha*sums/xrow + lambdas * temptheta/xrow return theta x= [[0,1,0],[0,0,1],[0,1,1],[1,1,1]] y= [[1],[2],[3],[4]] # calculate linearRegression by normal equation theta1 = linearRegresion(x,y) print theta1 #gradient descent theta2 = linearRegresion(x,y,False) print theta2
相关文章推荐
- numpy学习之linspace
- Python Matplotlib的安装使用及Scipy,numpy,dateutil,pyparsing的安装
- python的range()函数用法
- Python - 多次检查后缀名(endwith)
- Python - 连续替换(replace)的正则表达式(re)
- python爬行动物集合360联想词搜索
- python操作sybase数据库
- 繁简转换OpenCC,autogb 和 autob5,iconv,python的jianfan包
- 繁简转换OpenCC,autogb 和 autob5,iconv,python的jianfan包
- 老男孩python第六期
- 老男孩python第六期
- [python] Lift is short, I need python!
- Python实现截屏的函数
- python发邮件
- Python GUI漫谈
- python链接数据库
- python生成一个字典的嵌套
- python中的参数传递
- Python图形GUI工具包tkinter如何调整元件在窗口中的位置几何布局管理
- Python GUI编程 1.5 细数一些常用的窗口设置