Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import math
- import sys
- def HypoThe(Theta,xi):
- if(len(Theta)==len(xi)):
- sum=0
- for i in range(len(xi)):
- sum+=(Theta[i]*xi[i])
- return sum
- else:
- return False
- def RegCostFunc(Theta,X,Y,lamb):
- sum1=0
- for i in range(len(X)):
- sum1+=((HypoThe(Theta, X[i])-Y[i])**2)
- J=sum1
- sum1=0
- for i in range(1,len(Theta)):
- sum1+=(Theta[i]**2)
- J+=lamb*sum1
- return J/(2*len(X))
- def GradTerm(X,Y,Theta,i):
- sum1=0
- for j in range(len(X)):
- sum1+=((HypoThe(Theta,X[j])-Y[j])*X[j][i])
- return sum1
- def GradDesc(Theta,alpha,Xfeature,Ylabels):
- Theta_=[]
- for i in range(0,len(Theta)):
- Theta_.append(Theta(i)-(alpha* GradTerm(Xfeature,Ylabels,Theta,i)/len(Xfeature)))
- return Theta_
- def LinearRegression(Xfeature,Ylabels,alpha,iterations):
- if len(Xfeature)!=len(Ylabels):
- print("Missing Data");
- return False
- else:
- for i in range(len(Xfeature)):
- Xfeature[i].insert(0,1)
- Theta=[0]*len(Xfeature[0])
- for i in range(iterations):
- print("\nIteration Number ",i)
- print(Theta)
- Theta=GradDesc(Theta, alpha, Xfeature, Ylabels)
- print(Theta)
- return Theta
- Xfeature=[]
- Ylabels=[]
- f1=open("LinearRegression.txt")
- z=f1.readline()
- print("Fetching Data")
- while z:
- print(".",end=".")
- temp=z.split(",")
- temp1=[]
- for i in range(len(temp)-1):
- temp1.append(float((temp[i])))
- Xfeature.append(temp1)
- Ylabels.append(float(temp[-1]))
- z=f1.readline()
- f1.flush()
- print("")
- iterations=int(input("Enter the Number of Iterations"))
- alpha=float(input("Enter the learning rate"))
- m=round(len(Xfeature)/5)
- print(Xfeature[0]," ", Ylabels[0]," ", alpha," ", iterations )
- Theta=LinearRegression(Xfeature, Ylabels, alpha, iterations)
- print("\n========================================================================================")
- print("Saving Model......")
- f2=open("Models.txt","w")
- f2.write(str(Theta)+"\n")
- f2.close
- print("========================================================================================\n")
- while True:
- print("Enter ",len(Xfeature[0])," features to predict value for")
- Pred=[1];
- sys.stdout.flush()
- for i in range(len(Xfeature[0])-1):
- temp=float(input("Enter feature number "))
- Pred.append(temp)
- print(HypoThe(Theta,Pred))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement