楼主: 7112_1566899082
2377 0

[学习笔记] 【学习笔记】import numpy as np import pandas as pd from sklearn.datasets ... [推广有奖]

  • 0关注
  • 0粉丝

高中生

37%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
9.3699
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
253 点
帖子
21
精华
0
在线时间
10 小时
注册时间
2019-8-27
最后登录
2023-12-7

楼主
7112_1566899082 发表于 2019-12-3 18:15:12 来自手机 |只看作者 |坛友微信交流群|倒序 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
import numpy as np
import pandas as pd
from sklearn.datasets import fetch_california_housing as fch
from clean2 import *

housevalue = fch()
data = pd.DataFrame(housevalue.data, columns = housevalue.feature_names)
data[\'Price\'] = housevalue.target

m = manipulate(data)
std_data = m.data
train_data, test_data = m.train_data, m.test_data

class LRegression:
    def __init__(self, intercept = True):
        self.intercept = intercept

    def fit(self, data, lam = 0):
        X = data.iloc[:, :-1].values
        Y = data.iloc[:, -1].values
        SST = np.var(Y) * len(Y)

        if self.intercept:
            ones = np.array([1] * data.shape[0])
            X = np.column_stack((ones, X))
        X = np.mat(X)
        Y = np.mat(Y).T

        XTX = X.T * X + np.eye(X.shape[1]) * lam
        if np.linalg.det(XTX) == 0:
            print(\'X is linear dependent, exiting now\')
            return
        theta = XTX.I * X.T * Y
        Y_pred = X * theta
        error = Y - Y_pred
        SSE = np.power(Y - Y_pred, 2).sum()
        coef_ = np.ravel(theta)
        self.coef_ = theta
        return SSE, coef_
        
    def predict(self, data):
        X = np.mat(data.iloc[:, :-1].values)
        Y = np.mat(data.iloc[:, -1].values)
        
        X = np.column_stack((np.ones(X.shape[0]), X))
        
        Y_pred = X * self.coef_
        SSE_pred = np.power(Y - np.ravel(Y_pred), 2).sum()
        return Y_pred, SSE_pred


def solution(p, lam):
        if p < -lam:
            return p + lam
        elif p > lam:
            return p - lam
        else:
            return 0

def lasso_regression(data, lam = 0.1, num_inter = 1000):
    X = data.iloc[:, :-1].values
    Y = data.iloc[:, -1].values
    X = np.column_stack((np.ones(X.shape[0]), X))
    col_sum = np.power(np.power(X, 2).sum(axis = 0), 0.5)
    X = X / col_sum
    theta = np.ones((X.shape[1]))

    for _ in range(num_inter):
        for j in range(X.shape[1]):
            X_j = X[:, j]
            Y_pred = np.mat(X) * np.mat(theta).T
            p = np.mat(X_j) * (np.mat(Y).T - \\
                               Y_pred + \\
                               np.ravel(theta[j])[0] * np.mat(X_j).T)
            p = np.ravel(p)[0]
            theta[j] = solution(p, lam)
    return theta/col_sum
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:datasets dataset import pandas Learn

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加JingGuanBbs
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-27 23:23