# 机器学习练习5 偏差与方差
import numpy as np
import scipy.io as sio
import scipy.optimize as opt
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
def load_data():# 接收数据并把它们展平d = sio.loadmat('E:\PyCharm\数据\ex5data1.mat')return map(np.ravel,[d['X'],d['y'],d['Xval'],d['yval'],d['Xtest'],d['ytest']])
X,y, Xval, yval,Xtest, ytest = load_data()
df = pd.DataFrame({'water_level':X, 'flow':y})
sns.lmplot('water_level','flow',data=df, fit_reg=False, size=7)
# plt.show()
X , Xval, Xtest = [np.insert(x.reshape(x.shape[0],1),0,np.ones(x.shape[0]),axis=1) for x in (X, Xval,Xtest)]
def cost(theta, X, y):m = X.shape[0]inner = X@theta - ysquare_sum = inner.T @ innercost = square_sum /(2*m)return cost
def gradient (theta , X, y):m = X.shape[0]inner = X.T @ (X @ theta -y)return inner/m
def regularized_gradient(theta ,X,y,l=1):m = X.shape[0]regularized_term = theta.copy()regularized_term[0] = 0regularized_term = (1/m)*regularized_termreturn gradient(theta, X, y)+ regularized_term
def linear_regression_np(X, y, l=1):theta = np.ones(X.shape[1])res = opt.minimize(fun=regularized_cost,x0=theta,args=(X,y,1),method='TNC',jac=regularized_gradient,options={'disp':True})return  res
def regularized_cost(theta, X, y, l=1):m = X.shape[0]regularized_term = (1/(2*m))*np.power(theta[1:],2).sum()return cost(theta, X, y)+regularized_term
theta = np.ones(X.shape[0])
final_theta = linear_regression_np(X,y,l=0).get('x')
b = final_theta[0]
m = final_theta[1]
plt.scatter(X[:,1],y , label="Training data")
plt.plot(X[:,1],X[:,1]*m+b,label="Prediction")
plt.legend(loc = 2)
# plt.show()training_cost,cv_cost =[],[]
m=X.shape[0]
for i in range(1,m+1):res = linear_regression_np(X[:i,:],y[:i],l=0)tc = regularized_cost(res.x, X[:i,:],y[:i],l=0)cv = regularized_cost(res.x,Xval,yval,l=0)training_cost.append(tc)cv_cost.append(cv)
plt.plot(np.arange(1, m+1), training_cost, label='training cost')
plt.plot(np.arange(1, m+1), cv_cost, label='cv cost')
plt.legend(loc=1)
plt.show()def prepare_poly_data(*args,power):def prepare(x):df = poly_features(x,power=power)ndarr = normalize_feature(df).as_matrix()return np.insert(ndarr,0,np.ones(ndarr.shape[0]),axis=1)return [prepare(x)for x in args]
def poly_features(x,power, as_ndarray = False):data = {'f{}'.format(i):np.power(x,i)for i in range(1,power +1)}df = pd.DataFrame(data)# 生成一个列表return df.as_matrix() if as_ndarray else df
X,y,Xval,yval,Xtest,ytest = load_data()
print(poly_features(X, power=3))def normalize_feature(df):return df.apply(lambda column:(column - column.mean())/column.std())
X_poly ,Xval_poly ,Xtest_poly=prepare_poly_data(X,Xval,Xtest,power=8)l_candidate = [0,0.001,0.003,0.01,0.03,0.1,0.3,1,3,10]
training_cost, cv_cost = [],[]
for l in l_candidate:res = linear_regression_np(X_poly,y,l)tc = cost(res.x,X_poly,y)cv = cost(res.x,Xval_poly,yval)training_cost.append(tc)cv_cost.append(cv)
plt.plot(l_candidate, training_cost, label='training')
plt.plot(l_candidate, cv_cost, label='cross validation')
plt.legend(loc=2)
plt.xlabel('lambda')
plt.ylabel('cost')
plt.show()
l_candidate[np.argmin(cv_cost)]
for l in l_candidate:theta = linear_regression_np(X_poly,y,1).xprint('test cost(1={}) = {}'.format(1,cost(theta,Xtest_poly,ytest)))

Machine Learning ——Homework5相关推荐

  1. bff v2ex_语音备忘录的BFF-如何通过Machine Learning简化Speech2Text

    bff v2ex by Rafael Belchior 通过拉斐尔·贝尔基奥尔(Rafael Belchior) 语音备忘录的BFF-如何通过Machine Learning简化Speech2Text ...

  2. 吴恩达新书《Machine Learning Yearning》完整中文版 PDF 下载!

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale资源 推荐人:GithubDaily,Datawhale伙伴 <Mach ...

  3. 吴恩达《Machine Learning》Jupyter Notebook 版笔记发布!图解、公式、习题都有了

    在我很早之前写过的文章<机器学习如何入门>中,就首推过吴恩达在 Coursera 上开设的<Machine Learning>课程.这门课最大的特点就是基本没有复杂的数学理论和 ...

  4. 吴恩达新书《Machine Learning Yearning》完整中文版开源!

    选自Github 来源:机器学习算法与自然语言处理 吴恩达新书<Machine Learning Yearning>完整中文版开源,整理给大家. <Machine Learning ...

  5. Auto Machine Learning 自动化机器学习笔记

    ⭐适读人群:有机器学习算法基础 1. auto-sklearn 能 auto 到什么地步? 在机器学习中的分类模型中: 常规 ML framework 如下图灰色部分:导入数据-数据清洗-特征工程-分 ...

  6. 机器学习与优化基础(Machine Learning and Optimization)

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自|新机器视觉 引用大佬Pedro Domingos的说法: ...

  7. Machine Learning | (12) 非监督学习-k-means

    Machine Learning | 机器学习简介 Machine Learning | (1) Scikit-learn与特征工程 Machine Learning | (2) sklearn数据集 ...

  8. Machine Learning | (11) 回归性能评估与欠拟合、过拟合

    Machine Learning | 机器学习简介 Machine Learning | (1) Scikit-learn与特征工程 Machine Learning | (2) sklearn数据集 ...

  9. Machine Learning | (10) 回归算法-岭回归

    Machine Learning | 机器学习简介 Machine Learning | (1) Scikit-learn与特征工程 Machine Learning | (2) sklearn数据集 ...

  10. Machine Learning | (9) 回归算法-线性回归

    Machine Learning | 机器学习简介 Machine Learning | (1) Scikit-learn与特征工程 Machine Learning | (2) sklearn数据集 ...

最新文章

  1. 酷炫星空公告维护页源码
  2. Selenium WebDriver Api 知识梳理
  3. 4月17日 键盘大小写指示indicator-lockkeys
  4. PHP如何接入短信接口,通过短信群发通知
  5. ZPL条码及参数说明
  6. 计算机桌面性能3.3,显卡天梯图2018年3月最新版 三月桌面显卡性能排行
  7. 如何计算近似纳什均衡_网络与市场中的计算思维-5.博弈论的基本概念
  8. 素问—渗透测试的简介
  9. 小鸟云服务器如何通过本地安全策略阻止IP访问?
  10. 高薪程序员面试题精讲系列54之你熟悉B树吗?有哪几种B树?
  11. 总结 62 种在深度学习中的数据增强方式
  12. 520、Java Spring Cloud Alibaba -【Spring Cloud Alibaba Zuul】 2021.11.02
  13. 转载 解密蓝牙mesh系列 | 第五篇 【好友(Friend)和低功耗节点(LPN)】【友谊(Friendship)参数】【友谊建立】【友谊(Friendship)消息传送】【安全性】【友谊终止】
  14. springboot启动报org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean..
  15. 【Netty之旅四】你一定看得懂的Netty客户端启动源码分析!
  16. Android蒙版倒计时,【倒计时海报设计】- 虎课网
  17. BigDecimal 往左移动两位小数_小学五年级上册数学小数除法应用题专项练习,拿给孩子做做看...
  18. k8s命名空间删除失败,状态一直是Terminating
  19. html让内容整体中间,将HTML元素置于页面中间
  20. 企业公司都需要一套优秀的IT资产管理系统!

热门文章

  1. spring AOP概念及xml配置
  2. html日期判断程序,javascript – HTML5日期验证
  3. oracle视图定期执行,oracle job 定时执行 存储过程
  4. java 任务栏程序_如何为Java Swing程序动态启用或禁用任务栏图标
  5. EasyUI:动态更改combox下拉框中选项
  6. objenesis的基本使用方法
  7. 认真,respect!
  8. 随手记_重建的五花八门的点云地图效果(供娱乐)
  9. 【一天一个C++小知识】001.C++中的static关键字
  10. 统计学系方法4.1补充理解