Код: Выделить всё
# -*- coding: utf-8 -*-
from sklearn import linear_model
import numpy as np
X13 = [ ( 75, 50 ), ( 75, 150 ), ( 75, 300 ), ( 75, 500 ),
( 175, 50 ), ( 175, 150 ), ( 175, 300 ), ( 175, 500 ), ( 175, 700 ),
( 325, 150 ), ( 325, 300 ), ( 325, 500 ), ( 325, 700 ), ( 325, 900 ),
( 325, 1100 ), ( 325, 1300 ), ( 325, 1500 ), ( 325, 1700 ), ( 325, 1900 ),
( 475, 500 ), ( 475, 700 ), ( 475, 900 ), ( 475, 1100 ), ( 475, 1300 ),
( 475, 1500 ), ( 475, 1700 ), ( 475, 1900 ), ( 475, 2100 ), ( 475, 2350 ),
( 625, 500 ), ( 625, 700 ), ( 625, 900 ), ( 625, 1100 ), ( 625, 1300 ),
( 625, 1500 ), ( 625, 1700 ), ( 625, 1900 ), ( 625, 2100 ), ( 625, 2350 ),
( 625, 2750 ),
( 850, 1100 ), ( 850, 1300 ), ( 850, 1500 ), ( 850, 1700 ), ( 850, 1900 ),
( 850, 2100 ), ( 850, 2350 ), ( 850, 2750 ), ( 850, 3250 ), ( 850, 3750 ),
( 1150, 1500 ), ( 1150, 1700 ), ( 1150, 1900 ), ( 1150, 2100 ), ( 1150, 2350 ),
( 1150, 2750 ), ( 1150, 3250 ), ( 1150, 3750 ), ( 1150, 4250 ),
( 1450, 1700 ), ( 1450, 1900 ), ( 1450, 2100 ), ( 1450, 2350 ), ( 1450, 2750 ),
( 1450, 3250 ), ( 1450, 3750 ), ( 1450, 4250 ), ( 1450, 4750 ), ( 1450, 5250 ),
( 1750, 2100 ), ( 1750, 2350 ), ( 1750, 2750 ), ( 1750, 3250 ), ( 1750, 3750 ),
( 1750, 4250 ), ( 1750, 4750 ), ( 1750, 5250 ),
( 2050, 2350 ), ( 2050, 2750 ), ( 2050, 3250 ), ( 2050, 3750 ), ( 2050, 4250 ),
( 2050, 4750 ), ( 2050, 5250 ),
( 2400, 2350 ),( 2400, 2750 ),( 2400, 3250 ),( 2400, 3750 ),( 2400, 4250 ),
( 2400, 4750 ),( 2400, 5250 ),
( 2900, 2350 ), ( 2900, 2750), ( 2900, 3250 ), ( 2900, 3750 ), ( 2900, 4250 ),
( 2900, 4750 ), ( 2900, 5250 ),
( 3500, 2750 ), ( 3500, 3250 ), ( 3500, 3750 ), ( 3500, 4250 ), ( 3500, 4750 ),
( 3500, 5250 ),
]
H1 = [ 1.3, 1.6, 2.0, 2.2,
1.4, 1.7, 2.1, 2.4, 2.6,
1.8, 2.3, 2.5, 2.7, 2.9, 3.1, 3.2, 3.4, 3.5, 3.6,
2.6, 2.8, 3.0, 3.2, 3.3, 3.5, 3.6, 3.7, 3.8, 4.0,
2.7, 2.9, 3.1, 3.3, 3.4, 3.6, 3.7, 3.8, 3.9, 4.1, 4.3,
3.4, 3.5, 3.7, 3.8, 3.9, 4.0, 4.3, 4.4, 4.6, 4.8,
3.8, 3.9, 4.0, 4.1, 4.4, 4.5, 4.8, 4.9, 5.1,
4.0, 4.1, 4.2, 4.4, 4.6, 4.8, 5.0, 5.2, 5.4, 5.5,
4.3, 4.5, 4.7, 4.9, 5.1, 5.3, 5.5, 5.6,
4.6, 4.8, 5.0, 5.2, 5.4, 5.6, 5.7,
4.6, 4.8, 5.1, 5.3, 5.4, 5.6, 5.8,
4.7, 4.9, 5.2, 5.4, 5.5, 5.7, 5.9,
5.0, 5.2, 5.4, 5.6, 5.8, 6.0,
]
print( 'размерность данных = {}/{}'.format( len( X13 ), len( H1 ) ) )
print( 'исходные значения H1:\n{}'.format( H1 ) )
regr = linear_model.LinearRegression() # Create linear regression object
regr.fit( X13, H1 ) # Train the model using the training sets
print( 'коэффициенты регрессии: {}'.format( regr.coef_ ) )
RX13 = regr.predict( X13 )
print( 'восстановленные значения H1:\n{}'.format( RX13 ) )
print( 'суммарное расхождение = {}'.format( np.sum( ( RX13 - H1 ) ** 2 ) ) )
print( 'среднее расхождение = {}'.format( np.mean( ( RX13 - H1 ) ** 2 ) ) )
Как видно, это разреженная таблица ... что особенно интересно.