kaggle gradient_descent

1.描述

自写梯度下降

2.代码

import numpy as np
import matplotlib.pyplot as plt # train_X = np.array([[1,2,3,4,5,6,7,8,9,10],[1,2,3,4,5,6,7,8,9,10]]).T
# train_y = np.array([2,4,6,8,10,12,14,16,18,20]).T
# test_X = np.array([[2,4,12,11],[3,6,3,9]]).T # 5 10 15 20 train_X = np.random.randn(1000,10)
train_y = np.random.randn(1000,1)
test_X = np.random.randn(1000,10) step_len = 0.1
max_iterations = 100000
epsilon = 1e-7 def ComputeCost(X,y,theta):
tmp = X.dot(theta)-y.reshape(y.shape[0],1)
return 1/(2*len(y))*sum((tmp*tmp)) def GradientDescent(X,y,step_len,max_iterations):
X = np.array(X)
y = np.array(y)
X = np.column_stack( (np.ones((len(y),1)),X))
theta = np.zeros((X.shape[1],1))
m = len(y)
J_his = []
for i in range(0,max_iterations):
tmp = X.dot(theta)-y.reshape(y.shape[0],1)
theta = theta - step_len / m * X.T.dot(tmp)
J_his.append(ComputeCost(X,y,theta))
#print(J_his[-1])
if(len(J_his)>=2 and J_his[-2] - J_his[-1] >= 0 and J_his[-2] - J_his[-1] <= epsilon):
print('已收敛')
break
if(len(J_his)>=2 and J_his[-1] - J_his[-2] >= 0):
print('步长过大')
break
return theta,J_his def Predict(X,theta):
one = np.ones((X.shape[0],1))
X = np.column_stack(( one,X ))
return X.dot(theta) def Normalizetion(x):
sum_tmp = np.sum(x,axis=0)
max_tmp = np.max(x,axis=0)
min_tmp = np.min(x,axis=0)
ave_tmp = np.average(x,axis=0)
return (x - ave_tmp)/(max_tmp-min_tmp)
############################################################################# train_X = Normalizetion(train_X)
theta,J_his = GradientDescent(train_X,train_y,step_len,max_iterations)
# print('theta =',theta,'\n') # print(Predict(test_X,theta)) train_time = range(0,len(J_his))
plt.plot(train_time, J_his)
plt.xlabel('train_time')
plt.ylabel('cost_fun_J')
plt.show()

kaggle gradient_descent的更多相关文章

  1. kaggle入门2——改进特征

    1:改进我们的特征 在上一个任务中,我们完成了我们在Kaggle上一个机器学习比赛的第一个比赛提交泰坦尼克号:灾难中的机器学习. 可是我们提交的分数并不是非常高.有三种主要的方法可以让我们能够提高他: ...

  2. Kaggle入门教程

    此为中文翻译版 1:竞赛 我们将学习如何为Kaggle竞赛生成一个提交答案(submisson).Kaggle是一个你通过完成算法和全世界机器学习从业者进行竞赛的网站.如果你的算法精度是给出数据集中最 ...

  3. 如何使用Python在Kaggle竞赛中成为Top15

    如何使用Python在Kaggle竞赛中成为Top15 Kaggle比赛是一个学习数据科学和投资时间的非常的方式,我自己通过Kaggle学习到了很多数据科学的概念和思想,在我学习编程之后的几个月就开始 ...

  4. kaggle实战记录 =>Digit Recognizer

    date:2016-09-13 今天开始注册了kaggle,从digit recognizer开始学习, 由于是第一个案例对于整个流程目前我还不够了解,首先了解大神是怎么运行怎么构思,然后模仿.这样的 ...

  5. kaggle数据挖掘竞赛初步--Titanic<原始数据分析&缺失值处理>

    Titanic是kaggle上的一道just for fun的题,没有奖金,但是数据整洁,拿来练手最好不过啦. 这道题给的数据是泰坦尼克号上的乘客的信息,预测乘客是否幸存.这是个二元分类的机器学习问题 ...

  6. kaggle& titanic代码

    这两天报名参加了阿里天池的’公交线路客流预测‘赛,就顺便先把以前看的kaggle的titanic的训练赛代码在熟悉下数据的一些处理.题目根据titanic乘客的信息来预测乘客的生还情况.给了titan ...

  7. kaggle 竞赛之套路

    图片数据:卷积还是王道,有几个比较通用性的框架被人拿来改来改去 非图片特征数据:用分类: boost系列算法:牛逼的框架实现 xgboost AdaBoost算法针对不同的训练集训练同一个基本分类器( ...

  8. 初窥Kaggle竞赛

    初窥Kaggle竞赛 原文地址: https://www.dataquest.io/mission/74/getting-started-with-kaggle 1: Kaggle竞赛 我们接下来将要 ...

  9. 准备熟悉Kaggle -菜鸟进阶

    原文链接http://www.bubuko.com/infodetail-525389.html 1.Kaggle简介 Kaggle是一个数据分析的竞赛平台,网址:https://www.kaggle ...

随机推荐

  1. LeetCode Minimum Absolute Difference in BST

    原题链接在这里:https://leetcode.com/problems/minimum-absolute-difference-in-bst/#/description 题目: Given a b ...

  2. webpack 单页面应用实战

    这篇文章将介绍如何利用 webpack 进行单页面应用的开发,算是我在实际开发中的一些心得和体会,在这里给大家做一个分享.webpack 的介绍这里就不多说了,可以直接去官网查看. 关于这个单页面应用 ...

  3. Phong光照模型的Shader实现

    计算反射向量 Phong用到的是反射向量,计算反射向量的公式是 R = 2*N(dot(N, L)) - L 这个公式是根据向量的投影公式以及平行四边形法则推导出来的 详细步骤请看这篇文章,讲的非常好 ...

  4. Linux 命令行监视显卡使用情况

    本文由Suzzz原创,发布于 http://www.cnblogs.com/Suzzz/p/4106581.html ,转载请保留此声明. 在使用GPU做计算,比如跑 Deep Learning代码的 ...

  5. inotify 同步脚本

    #!/bin/bash path1=/home/htoa/tomcat/webapps/ROOT/htoa/ ip=192.168.30.13 /usr/bin/inotifywait -mrq -- ...

  6. Java基础--对象克隆

    对象拷贝用于在内存中复制对象,无需构造器便可创建对象. 需要注意的是 1.clone方法提供的只是简单的值拷贝和地址拷贝,若类中包含HashMap等类型时,需要手工编写拷贝过程 2.如果父类没有提供正 ...

  7. java中i/o练习

    总结: FileInputStream fis; int length; while((length=fis.read(b,0,b.length))!=-1){ output.write(b,0,le ...

  8. AngularJS:HTML DOM

    ylbtech-AngularJS:HTML DOM 1.返回顶部 1. AngularJS HTML DOM AngularJS 为 HTML DOM 元素的属性提供了绑定应用数据的指令. ng-d ...

  9. MySQL binlog 自动备份脚本

    MySQL binlog 自动备份脚本 1 利用shell进行备份 #!/bin/sh #mysql binlog backup script /usr/local/mysql/bin/mysqlad ...

  10. rails自定义出错页面

    一.出错类型 Exception ActionController::UnknownController, ActiveRecord::RecordNotFound ActionController: ...