房价预测(HackerRank)
生活随笔
收集整理的這篇文章主要介紹了
房价预测(HackerRank)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
從今天開始要多做一些關于機器學習方面的競賽題目,題目來源主要是Hackerrank和Kaggle。鏈接如下
?
Hackerrank:https://www.hackerrank.com/
Kaggle:https://www.kaggle.com/
?
在Hackerrank中提交源代碼,這就使得很多庫都需要自己寫,限制比較多。而Kaggle只需要提交數據,所以隨便怎么搞都行。現在來講第一道題,房價預測,這是Andrew Ng課程里的比較經典的例子。題目描述如下
?
題目:https://www.hackerrank.com/challenges/predicting-house-prices
?
分析:比較簡單,用梯度下降法即可。
?
代碼:
#coding:utf-8class Data:def __init__(self):self.x = []self.y = 0.0def WX(d, w):ans = 0.0for i in range(0, len(w)):ans += w[i] * d.x[i]return ansdef Gradient(d, w, alpha):for i in range(0, len(w)):tmp = 0.0for j in range(0, len(d)):tmp += alpha * d[j].x[i] * (WX(d[j], w) - d[j].y)w[i] -= tmpdef getValues(d, w):res = 0.0for i in range(0, len(d)):tmp = WX(d[i], w)res += (d[i].y - tmp) * (d[i].y - tmp)return resdef Iterator(d, w):alpha = 0.005delta = 0.000001oldVal = getValues(d, w)Gradient(d, w, alpha)newVal = getValues(d, w)while abs(oldVal - newVal) > delta:oldVal = newValGradient(d, w, alpha)newVal = getValues(d, w)def main():while True:try:d = []w = []F, N = map(int, raw_input().split())for i in range(0, N):t = Data()t.x = map(float, raw_input().split())t.x.insert(0, 1.0)t.y = t.x.pop()d.append(t)for i in range(0, F + 1):w.append(0)Iterator(d, w)N = int(raw_input())for i in range(0, N):t = Data()t.x = map(float, raw_input().split())t.x.insert(0, 1.0)print '%.2f'% WX(t, w)except EOFError:breakif __name__ == '__main__':main()
?
總結
以上是生活随笔為你收集整理的房价预测(HackerRank)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于欧拉工程的一道递推题
- 下一篇: 多项式回归模型(Office Price