一個使用sklearn實現線性迴歸的簡單實例,主要包括數據準備,以及預測部分。
- 數據準備
def loadDataSet(filename):
file=open(filename,'r')
dataMat=[]
labelMat=[]
filelines=file.readlines()
#讀取文件
for line in filelines:
linearr=[]
#對文件內容進行處理
curline=line.strip().split('\t')
for i in range(1,len(curline)):
linearr.append(float(curline[i]))
dataMat.append(linearr)
labelMat.append(float(curline[0]))
#歸一化處理
min_max_scaler = preprocessing.MinMaxScaler()
dataMat = min_max_scaler.fit_transform(dataMat)
#對訓練數據進行分批,用於檢驗預測的爭取性
return cross_validation.train_test_split(dataMat,labelMat,test_size=0.25,\
random_state=random.randint(1,5))
2.預測部分
def test_linearregression():
xtrain, xtest, ytrain, ytest = loadDataSet(r'xxx.txt')
regr = linear_model.LinearRegression()
regr.fit(xtrain, ytrain)
return regr.score(xtest, ytest)
3.用到的頭文件
from sklearn import linear_model,cross_validation,discriminant_analysis
from sklearn import preprocessing
import random