小编是一个来自人工智能技术应用的大专学生,我们的课程安排中有《机器学习》这一门课,其实对于我们来说更注重于实操,所以我们每节课都会进行练习。

但是老师讲的很快,就小编班里面的也只有极少数人能够听懂,所以小编就把我的学习资料以及我的练习过程分享给大家,下面是我的git code路径,以及一些基础的方法和代码感谢大家观看。

1.最小二乘法

import numpy as np
from sklearn.linear_model import LinearRegression
import matplotlib.pyplot as plt
x=np.array([[100],[113],[90],[89],[60],[70],[50],[45],[55],[78]])								
y=np.array([[301],[324],[285],[296],[200],[260],[300],[120],[180],[245]])

plt.xlabel('面积')						
plt.ylabel('售价')						
plt.rcParams['font.sans-serif']='Simhei'	                          
plt.axis([40,125,100,400])		
					            

model=LinearRegression()	             
model.fit(x,y)
y2=model.predict(x)		#predict 预测值,返回值是二维数组	           

print("w=",model.coef_[0],"b=",model.intercept_)
plt.scatter(x,y,s=60,c='k',marker='o')		             
plt.plot(x,y2,'r-')		              
plt.show()

a=model.predict([[200]])
print("200平房屋的价格是:",a[0][0])

 #预测
import numpy as np
from sklearn.linear_model import LinearRegression
import matplotlib.pyplot as plt
x=np.array([[100],[113],[90],[89],[60],[70],[50],[45],[55],[78]])								
y=np.array([[301],[324],[285],[296],[200],[260],[300],[120],[180],[245]])

model=LinearRegression()	             
model.fit(x,y)

y2=model.predict(x)		            #predict 预测值,返回值是二维数组	
x_test=np.array([[103],[115],[90],[89],[60],[70],[50],[45],[55],[78]])
y_test=np.array([[301],[344],[275],[276],[206],[210],[160],[124],[190],[235]])
#计算三个值评估化指标
mse=np.average((y2-np.array(y))**2) #均方误差/average加权平均数
rmse=np.sqrt(mse)		            #均方根误差(开根号)
r2=model.score(x_test,y_test)	                #预测准确率
#输出三个值
print("均方误差为:",mse)		     #输出均方误差
print("均方根误差为:",rmse)		 #输出均方根误差
print("预测准确率为:",r2)		     #输出预测准确率

2.梯度下降法

import numpy as np
from sklearn.linear_model import SGDRegressor

import matplotlib.pyplot as plt
x=np.array([[100],[113],[90],[89],[60],[70],[50],[45],[55],[78]])								
y=np.array([[301],[324],[285],[296],[200],[260],[300],[120],[180],[245]])

plt.xlabel('面积')						
plt.ylabel('售价')						
plt.rcParams['font.sans-serif']='Simhei'	                          
plt.axis([40,125,100,400])		
					            

model=SGDRegressor(loss='huber',max_iter=5000,random_state=42)	             
model.fit(x,y.ravel())
y2=model.predict(x)		#predict 预测值,返回值是二维数组	           

print("w=",model.coef_[0],"b=",model.intercept_)
plt.scatter(x,y,s=60,c='k',marker='o')		             
plt.plot(x,y2,'r-')		              
plt.show()

a=model.predict([[200]])
print("200平房屋的价格是:",a[0])

#预测
import numpy as np
from sklearn.linear_model import SGDRegressor

import matplotlib.pyplot as plt
x=np.array([[100],[113],[90],[89],[60],[70],[50],[45],[55],[78]])								
y=np.array([[301],[324],[285],[296],[200],[260],[300],[120],[180],[245]])

					        
model=SGDRegressor(loss='huber',max_iter=5000,random_state=42)	             
model.fit(x,y.ravel())
y2=model.predict(x)		#predict 预测值,返回值是二维数组	           

x_test=np.array([[103],[115],[90],[89],[60],[70],[50],[45],[55],[78]])
y_test=np.array([[301],[344],[275],[276],[206],[210],[160],[124],[190],[235]])
#计算三个值评估化指标
mse=np.average((y2-np.array(y))**2) #均方误差/average加权平均数
rmse=np.sqrt(mse)		            #均方根误差(开根号)
r2=model.score(x_test,y_test)	                #预测准确率
#输出三个值
print("均方误差为:",mse)		     #输出均方误差
print("均方根误差为:",rmse)		 #输出均方根误差
print("预测准确率为:",r2)		     #输出预测准确率


    

查看:https://gitcode.com/2401_89601981/hellow.git

克隆到本地:git clone https://gitcode.com/2401_89601981/hellow.git

注:代码是自己打的,如果有错,欢迎指出。

更多推荐