1.利用sklearn的數(shù)據(jù)
(boston的房?jī)r(jià))
from sklearn import datasets
from sklearn.linear_model import LinearRegression
loaded_data = datasets.load_boston()
#加載自帶的數(shù)據(jù)
data_X = loaded_data.data
#為矩陣每一行為一個(gè)數(shù)據(jù)的不同屬性值
data_y = loaded_data.target
#對(duì)應(yīng)的不同的label表示的是每一行的label
model = LinearRegression()
#利用model 表示利用某種分析方法 (線性回歸)
model.fit(data_X,data_y)
print(model.predict(data_X[:4,:]))
#預(yù)測(cè)值利用前四行的屬性值
print(data_y[:4])
#真實(shí)的值
#[ 30.00821269 25.0298606 30.5702317 28.60814055]
#[ 24. 21.6 34.7 33.4]
2.創(chuàng)建訓(xùn)練數(shù)據(jù)
make_regression
n_samples:表示的是數(shù)量
n_features:表示的是屬性的個(gè)數(shù)
n_targets:表示的是label的個(gè)數(shù)
noise:越多則數(shù)據(jù)分散
X,y = datasets.make_regression(n_samples = 100,n_features = 1,
n_targets = 1,noise = 10)
plt.scatter(X,y)
#利用圖來(lái)顯示
plt.show()
3.model的各種屬性
print(model.coef_)
#表示的是每一個(gè)屬性前面的系數(shù)
print(model.intercept_)
#表示的是與y軸的交點(diǎn)
print(model.get_params())
#所取的model的里面有哪些參數(shù)可以更改
print(model.score(data_X,data_y)
#用data_X來(lái)預(yù)測(cè)的值的準(zhǔn)確率百分制
#R^2 coefficient of determination百度這個(gè)可以查出準(zhǔn)確率
4.數(shù)據(jù)的normalization(歸一化)
4.1 數(shù)據(jù)歸一化的方法
from sklearn import preprocessing
a = np.array([[10,2.7,3.6],
[-100,5,-2],
[120,20,40]],dtype = np.float64)
print(a)
print(preprocessing.scale(a))
4.2 數(shù)據(jù)的歸一化的影響
精度方面:
得到結(jié)果可以發(fā)現(xiàn)為94%的正確率
X,y = make_classification(n_samples = 300,n_features = 2,n_redundant = 0,
n_informative = 2,random_state = 22,n_clusters_per_class = 1,scale = 100)
X = preprocessing.scale(X)
X_train,X_test,y_train,y_test = train_test_split(X,y,test_size =0.3)
clf = SVC()
clf.fit(X_train,y_train)
print(clf.score(X_test,y_test))
使用歸一化也可以使得梯度下降的速度更快