多项式回归及岭回归实例

from sklearn.preprocessing import PolynomialFeatures#多项式特征

data_X = []
data_Y = []
f = open('price.txt','r')
lines = f.readlines()
for line in lines:
	items = line.strip().split(',')#删除每行首尾的符号,再分割成列表
	data_X.append(int(items[0]))
	data_Y.append(int(items[1]))
length = len(data_X)
data_X = np.array(data_X).reshape([length,1])
data_Y = np.array(data_Y)
minX = min(data_X)
maxX = max(data_X) 
X = np.arange(minX, maxX).reshape([-1,1])

Poly_reg = PolynomialFeatures(degree = 2)#表示二次多项式拟合
X_poly = poly_reg.fit_transform(data_X)
lin_reg_2 = linear_model.LinearRegression()
lin_reg_2.fit(X_poly, data_Y)  #利用线性模型学习处理后的x和y的关系
plt.plot(X, lin_reg_2.predict(poly_reg.fit_transform(X)))#同样需要先将X处理成多项式特征

#交通流量预测,使用岭回归
data = np.loadtxt('data.txt')
plt.plot(data[:,4])  #第四列表示车流量,用来展示车流量的信息
X = data[:,:4]
Y = data[:, 4]
poly_reg = PolynomialFeatures(6)
X = poly_reg.fit_transform(X)
X_train, Y_train, X_test, Y_test = train_test_split(X, Y, test_size = 0.2, random_state = 0)
clf = Ridge(alpha = 1, fit_intercept = True)  #岭回归的回归器
clf.fit(X_train, Y_train)
clf.score(X_test, Y_test)

你可能感兴趣的:(算法)