Exemplo n.º 1
0
from KNN.modelSplit import train_test_split
from LinearRegression.multLinearRegression import MultLinearRegression
from LinearRegression.multLinearRegressionS import MultLinearRegressionS
from sklearn.preprocessing import StandardScaler

"""梯度下降法的向量化测试"""

if __name__ == "__main__":
    boston = datasets.load_boston()
    X = boston.data
    y = boston.target

    X = X[y < 50.0]
    y = y[y < 50.0]

    X_train, X_test, y_train, y_test = train_test_split(X, y, seed=666)

    lin_reg1 = MultLinearRegression()
    lin_reg1.fit_normal(X_train, y_train)
    print("MultLinearRegression's Predict Score : {}".format(lin_reg1.score(X_test, y_test)))

    # 报错nan, 如果使用默认eta
    lin_reg2 = MultLinearRegressionS()
    lin_reg2.fit_gd(X_train, y_train, eta=0.000001, n_iters=1e6)
    # score很低,最好在使用梯度下降法前进行数据归一化
    print("MultLinearRegression's Predict Score : {}".format(lin_reg2.score(X_test, y_test)))

    # 进行数值归一化
    standardScaler = StandardScaler()
    standardScaler.fit(X_train)
    X_train_standard = standardScaler.transform(X_train)  # 归一化处理
Exemplo n.º 2
0
import numpy as np
import matplotlib.pyplot as plt
from math import sqrt
from sklearn import datasets
from ModelTest.metrics import *
from KNN.modelSplit import train_test_split
from LinearRegression.simpleLinearRegressionS import SimpleLinearRegression2

if __name__ == "__main__":
    """衡量线性回归算法的标准测试"""

    boston = datasets.load_boston()

    x = boston.data[:, 5]  # 只使用房间数量这个特征
    y = boston.target

    x = x[y < 50.0]
    y = y[y < 50.0]

    x_train, x_test, y_train, y_test = train_test_split(x, y, seed=666)

    reg = SimpleLinearRegression2()
    reg.fit(x_train, y_train)

    y_predict = reg.predict(x_test)

    print("MSE : {}".format(mean_squared_error(y_test, y_predict)))
    print("RMSE : {}".format(root_mean_squared_error(y_test, y_predict)))
    print("MAE : {}".format(mean_absolute_error(y_test, y_predict)))
    print("R Squared : {}".format(r2_score(y_test, y_predict)))
Exemplo n.º 3
0
from KNN.modelSplit import train_test_split
from KNN.kNN import kNNClassifier
from sklearn import datasets
from ModelTest.metrics import accuracy_score
"""自定义KNN算法测试"""

iris = datasets.load_iris()  # 导入鸢尾花数据集
X = iris.data
y = iris.target

X_train, X_test, y_train, y_test = train_test_split(X,
                                                    y)  # 对数据集进行拆分,训练数据集,测试数据集

my_knn_clf = kNNClassifier(k=3)
my_knn_clf.fit(X_train, y_train)

y_predict = my_knn_clf.predict(X_test)  # 返回预测结果集
print("预测准确率为:{}".format(accuracy_score(y_test, y_predict)))
Exemplo n.º 4
0
import numpy as np
import matplotlib
import matplotlib.pyplot as plt
from sklearn import datasets
from KNN.modelSplit import train_test_split
from KNN.kNN import kNNClassifier
from ModelTest.metrics import accuracy_score

digits = datasets.load_digits()
X = digits.data
y = digits.target

X_train, X_test, y_train, y_test = train_test_split(X, y, test_ratio=0.2)

# 还原特征变为图像
# some_digit = X[666]
# print(y[666])
# some_digit_image = some_digit.reshape(8, 8)
# plt.imshow(some_digit_image, cmap = matplotlib.cm.binary)
# plt.show()

my_knn_clf = kNNClassifier(k=3)
my_knn_clf.fit(X_train, y_train)
"""只关心准确率,不关心预测结果"""
print("自定义kNN模型预测准确率为:{}".format(my_knn_clf.score(X_test, y_test)))
"""使用自定义KNN模型测试手写数字准确度"""
y_predict = my_knn_clf.predict(X_test)
print("自定义kNN模型预测准确率为:{}".format(accuracy_score(y_test, y_predict)))